4

我刚刚被告知MySQL集群(使用 NDB 引擎)不支持跨集群的外键约束。

使用JPA/ Hibernate,如果数据库不强制执行引用完整性,您将如何强制执行它?

一种选择是调用数据库以验证数据,然后如果有效则执行insert/update/delete操作。我有点不愿意采用这种方法,因为它会对性能产生影响。

问题:

  • 如果在数据库中不支持外键检查,那么在使用带有/的MySQL集群时,您通常如何强制执行参照完整性检查。JPAHibernate

  • 如果手动检查是唯一的选择,有什么方法可以通过一次访问数据库来完成手动检查事务?(可能作为CRUD操作的一部分)

4

1 回答 1

3

我认为您无法使用任何 Hibernate/JPA 功能来强制执行参照完整性。正如 eggyal 所提到的,您需要使用触发器在 MySQL 本身中创建“程序化”外键。

MySQL网站上有一篇关于如何做到这一点的文章:http: //dev.mysql.com/tech-resources/articles/mysql-enforcing-foreign-keys.html

于 2012-04-27T14:23:46.660 回答