hibernate - foranea - Grails, cómo buscar por un registro por su clave foránea
clave foranea ejemplo (1)
Intenta usar un criterio :
def c = AlumLanguage.createCriteria()
def languages = c.get {
eq(''name'', ''whatever-language'')
alumProfile {
eq(''id'', ''jIi-hRi4cI'')
}
}
Tengo dos dominios que son parte de un barco de relaciones uno a muchos. Me preguntaba cómo puedo consultar al niño para los padres FK? abajo está el código psuedo para padre / hijo
Padre:
class AlumProfile {
String firstName
String lastName
static hasMany = [alumLanguage : AlumLanguage]
static mapping = {
cache true
id generator: ''assigned''
columns {
firstName type:''text''
lastName type:''text''
}
//
}
static constraints = {
firstName (nullable:true)
lastName (nullable:true)
}
}
Niño:
class AlumLanguage {
String name
String level
static belongsTo = [alumProfile:AlumProfile]
static mapping = {
cache true
columns {
name type:''text''
level type:''text''
}
}
static constraints = {
name(nullable:true)
level(nullable:true)
}
}
Aunque no creo explícitamente el FK, Grails se encarga de crearlo MySQL DB por sí mismo. Pero, cuando quiero consultar al niño por FK de esta manera:
if(AlumLanguage.findByNameAndAlumProfileId(language.''language''.toString(), ''jIi-hRi4cI'')==null){
//do something
}
Me sale un error: No se ha encontrado ninguna propiedad para name [alumProfileId] para la clase [class mgr.AlumLanguage]
¿Alguna sugerencia sobre cómo lograr esto?
gracias jason