Mysql 如何处理Grails/GORM中的关系破裂?
我有一个Grails2.4.3应用程序,它将访问一个旧的、易损坏的数据库,其中的数据完整性有问题 随着时间的推移,各种破裂的关系已经建立起来……不知道为什么,我/拥有的组织准备说“这只是生活/历史,我们将接受它。” 问题是,如何“接受它” 具体来说:如何处理Grails/GORM中这些破碎的关系 此时,当我访问一个关系中断的Notes实例时,我得到一个异常:Mysql 如何处理Grails/GORM中的关系破裂?,mysql,hibernate,grails,gorm,Mysql,Hibernate,Grails,Gorm,我有一个Grails2.4.3应用程序,它将访问一个旧的、易损坏的数据库,其中的数据完整性有问题 随着时间的推移,各种破裂的关系已经建立起来……不知道为什么,我/拥有的组织准备说“这只是生活/历史,我们将接受它。” 问题是,如何“接受它” 具体来说:如何处理Grails/GORM中这些破碎的关系 此时,当我访问一个关系中断的Notes实例时,我得到一个异常: Caused by: org.hibernate.ObjectNotFoundException: No row with the giv
Caused by: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [Contract#292]
我可能会进行如下测试:
Contract.exists(note.contract_id)
所有这些都是我的代码,但是…唷!这将成为一个大规模的练习:在使用前检查每一段关系都会很可怕
有更好的办法吗?一种让我的代码保持干爽和更健壮的方法
这不是一个特别针对GORM/Hibernate/ORM的问题,但我想知道这些框架是否能提供一些帮助
这些关系大多标记为null:true
我的数据库是mysql/innodb。您可以在关系的映射块中指定
ignoreNotFound:true
我从未注意到这种映射!是的,它是隐藏的,但它是一个宝石与遗留数据库的工作!