是否可以在Gorm中使用单向M:M?
e.g。
我有一个Person
对象,我有TravelDestionion
个对象。
一个人可以去过很多旅游目的地,其中一些旅游目的地当然有很多人。但是,我从不想从TravelDestination导航到Person。
任何提示?
答案 0 :(得分:1)
从技术上讲,你可以不访问另一方,但Grails在这方面太有帮助了。例如,当您想要将新的TravelDestination
实例与Person
相关联时,可以将其添加到此人的destinations
集合(或您为其命名的任何内容)中。但为确保双方在调用save
后与数据库的内容保持同步,Grails会将Person
添加到TravelDestination
的{{1}}集合中
这显然可能非常昂贵,例如用户< - >角色关系,其中1,000,000个用户拥有ROLE_USER,另外一个拥有该角色,该用户在角色的用户集合中成为元素#1,000,001,由Hibernate加载到内存中以确保唯一性。
查看此演示文稿,我将对此进行讨论,并提供一些重新配置关系的高性能选项,而不会在GORM中使用集合代表1-many和many-many的潜在巨大开销:http://www.infoq.com/presentations/GORM-Performance