Grails-在不获取整个对象的情况下获取域关系id
例如,我有以下域对象:Grails-在不获取整个对象的情况下获取域关系id,grails,groovy,gorm,Grails,Groovy,Gorm,例如,我有以下域对象: class A { B b static constraints = { b nullable: true } } class B { } 给定A的实例,我只想获取B的id 我尝试了以下操作,但每次都收到空值: def id = a.bId 是否可以在不执行a.b.id的情况下获取b的id?您需要增强您的域以使用基于GORM的映射提示(提供给Hibernate)来完成此操作 您的域可能如下所示: class A { static
class A {
B b
static constraints = {
b nullable: true
}
}
class B {
}
给定A的实例,我只想获取B的id
我尝试了以下操作,但每次都收到空值:
def id = a.bId
是否可以在不执行a.b.id的情况下获取b的id?您需要增强您的域以使用基于GORM的映射提示(提供给Hibernate)来完成此操作 您的域可能如下所示:
class A {
static hasOne = [b: B]
}
class B {
// stuff
}
使用hasOne
将允许Hibernate管理关联,从而允许您使用a.bId
符号
希望这能有所帮助。好的,我的问题是A包含对另一个A的引用(类似于链表)。在这种情况下,它似乎根本不起作用。您问题中的示例是否更新以反映您的实际情况?同样,除非您对GORM/Hibernate使用某种类型的提示,否则它将无法只加载id(实际上只加载具有id的代理,但这并不重要)。唯一的其他解决方案是编写一个使用projections/hql返回原始id的特定查询。