当ObjectA被创建时,ObjectB不存在(并且由于没有数据而不能).
一旦创建了ObjectB,如果存在适当的ObjectB,它需要附加相应的ObjectA.如果没有合适的ObjectA,则新的ObjectB不会连接到一个.
因此,所有ObjectA实例最终都将附加到ObjectB,但并非所有ObjectB实例都将具有ObjectA.
基本上,我正在寻找GORM来构建这样的数据库表:
ObjectA- ID (NotNull,unique)- ObjectB_ID[FK: ObjectB.ID] (unique)ObjectB- ID (NotNull,unique)
如何组合GORM域类来完成此 *** 作?
我已经尝试了几乎所有的hasOne,belongsTo,原始属性,可空的组合:真实和独特:我能想到的真正的约束,但我必须错过一个.这似乎不是一个特别奇怪的场景,所以必须有一些方法来实现这一点.
解决方法 通常情况下,将我的想法放在一起提出问题就会引出我的解决方案:Class ObjectA { ObjectB objectB static constraints = { objectB nullable: true,unique: true }}Class ObjectB { static belongsTo = [objectA: ObjectA] static constraints = { objectA nullable: true }}
我似乎无法解决的唯一问题就是可以将ObjectB.objectA设置为已经与ObjectB关联的ObjectA.保存新关联时,GORM不会保存关联.不会抛出任何错误,并且将新的ObjectB从数据库中拉出会使其objectA属性未设置.
添加唯一:true对象在ObjectB类中的约束也没有帮助.而不是静默失败,将抛出错误,指示由于未设置的参数而导致唯一性检查失败.
总结以上是内存溢出为你收集整理的grails – 如何在GORM中建立可选的一对一关系?全部内容,希望文章能够帮你解决grails – 如何在GORM中建立可选的一对一关系?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)