我刚刚得知 MySQL
集群(使用 NDB 引擎)不支持跨集群的外键约束。
使用 JPA
/Hibernate
,如果数据库不强制执行参照完整性,您将如何强制执行参照完整性?
一个选项是调用数据库来验证数据,然后如果有效则执行insert/update/delete
操作。我有点不愿意采用这种方法,因为它会影响性能。
问题:
如果不支持外键检查,当使用
MySQL
集群和JPA
/Hibernate
时,通常如何执行参照完整性检查在数据库中。如果手动支票是唯一的选择,有没有什么方法可以通过单次访问数据库来完成手动支票交易? (可能作为
CRUD
操作的一部分)
最佳答案
我认为您无法使用任何 Hibernate/JPA 功能来强制执行参照完整性。正如 eggyal 提到的,您需要使用触发器在 MySQL 本身中创建“程序化”外键。
MySQL 网站上有一篇文章介绍如何做到这一点:http://dev.mysql.com/tech-resources/articles/mysql-enforcing-foreign-keys.html
关于java - 在 MySQL 集群上使用 JPA/Hibernate 检查外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10351711/