在 grails 中,我可以像这样实现 N:1 关系:
class Parent { hasMany = [children:Child] }
class Child { belongsTo = [parent:Parent] }
现在(如果始终正确使用 addTo 和 removeFrom)我可以通过 parent.children 获得父母的孩子。
但我也可以不用hasMany:
class Parent { }
class Child { belongsTo = [parent:Parent] }
然后我必须使用 Child.findAllByParent(parent) 来获取所有孩子。
我的问题:如果也可以用第二种方式查询父母的孩子,我应该使用 hasMany 有什么重要的原因吗?
我想有时只引用 parent.children 会更容易(如果与父母一起急切地获取可能会更快?),但另一方面,当有几个孩子时,这个列表可能会变得相当长。而我不喜欢 hasMany 的一点是,您总是必须注意 addTo 或 removeFrom 或者在添加一个带有 Parent 的新 Child 后清除会话,以便 grails 自动执行此操作......
如果孩子很少,你应该简单地使用 hasMany 并且如果有很多(出于性能原因)就不要使用它的答案,还是背后有更多?