我有一个 grails 2.4.3 应用程序要访问一个旧的、有完整性问题的数据的硬皮数据库。
随着时间的推移,各种破裂的关系已经建立起来......不知道为什么,我/拥有组织准备说“这只是生活/历史,我们将接受它。”
问题是,如何“忍受”?
具体来说:如何处理 Grails/GORM 中这些 splinter 的关系?
目前,当我访问关系破裂的 Note 实例时,出现异常:
Caused by: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [Contract#292]
我可能会像这样进行飞溅测试:
Contract.exists(note.contract_id)
贯穿我的代码,但是......YUK!这将成为一项巨大的练习:在使用前检查每一个关系将是可怕的。
有没有更好的方法?一种让我的代码既干又健壮的方法?
这不是一个特定于 GORM/Hibernate/ORM 的问题,但我想知道这些框架是否会带来任何帮助来解决这个问题。
关系大多标记为可空:true。
我的数据库是mysql/innodb。
最佳答案
您可以在关系的映射 block 中指定 ignoreNotFound: true
。
http://grails.org/doc/latest/ref/Database%20Mapping/ignoreNotFound.html
关于mysql - 如何处理 Grails/GORM 中破裂的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25839782/