我有一个grails 2.4.3应用程序进入一个旧的,有问题的完整数据的数据库。
随着时间的推移,各种破碎的关系已经建立......不知道为什么,我/拥有的组织准备说“这只是生活/历史,我们将与之共存。”
问题是,如何“忍受它”?
具体来说:如何应对Grails / GORM中这些破碎的关系?
目前,当我访问具有断开关系的Note实例时,我得到一个例外:
Caused by: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [Contract#292]
我可能会像以下那样进行飞溅测试:
Contract.exists(note.contract_id)
我的整个代码都是......但是!这将成为一项大规模的练习:在使用之前检查每个关系将是HORRID。
有更好的方法吗?一种让我的代码既干又更健壮的方法?
这不是特别针对GORM / Hibernate / ORM的问题,但我想知道框架是否会为表格提供任何帮助。
这些关系大多数都是可以为空的:真实。
我的数据库是mysql / innodb。
答案 0 :(得分:2)
您可以在关系的映射块中指定ignoreNotFound: true
。
http://grails.org/doc/latest/ref/Database%20Mapping/ignoreNotFound.html