在MySQL集群上使用JPA/Hibernate进行java外键约束检查
我刚刚被告知MySQL
集群(使用NDB引擎)不支持跨集群的外键约束
使用JPA
/Hibernate
,如果数据库不强制引用完整性,您将如何强制引用完整性
一个选项是调用数据库来验证数据,如果数据有效,则执行insert/update/delete
操作。我有点不愿意采用这种方法,因为它会影响性能
问题:
如果数据库中不支持外键检查,那么在使用带有
JPA
/Hibernate
的MySQL
集群时,通常如何强制执行引用完整性检查如果手动检查是唯一选项,是否有任何方法可以通过一次数据库访问来完成手动检查事务?(可能是
CRUD
操作的一部分)
# 1 楼答案
我认为您无法使用任何Hibernate/JPA功能强制实现引用完整性。正如eggyal提到的,您需要使用触发器在MySQL本身中创建“可编程”外键
MySQL网站上有一篇关于如何做到这一点的文章:http://dev.mysql.com/tech-resources/articles/mysql-enforcing-foreign-keys.html