2012-04-27 7 views
4

MySQLクラスタ(NDBエンジンを使用)は、クラスタ間で外部キー制約をサポートしていないことが通知されました。MySQLクラスタでJPA/Hibernateを使用した外部キ​​ー制約チェック

JPA/Hibernateを使用して、データベースがそれを実施しない場合、参照整合性をどのように強制しますか?

1つの選択肢は、有効である場合にinsert/update/delete操作を実行するためにデータベースを呼び出してデータを検証することです。パフォーマンスへの影響があるので、私はこのアプローチに躊躇しています。

質問:

  • どのように外部キーチェックがデータベースでサポートされていない場合JPA/HibernateMySQLクラスタを使用するときは、通常、参照整合性チェックを実施します。

  • 手動チェックが唯一のオプションである場合、データベースへの1回のトリップで手動チェックトランザクションを完了できる方法はありますか?

+1

私はあなたが...トリガーで – eggyal

答えて

3

(おそらくCRUD操作の一部として)私はあなたが任意の休止/ JPAの機能を使用して参照整合性を強制することはできないと思います。前述のように、MySQL自身で "プログラマチックな"外部キーを作成するには、トリガーを使用する必要があります。

それを行う方法上のMySQLウェブサイト上の記事があります:http://dev.mysql.com/tech-resources/articles/mysql-enforcing-foreign-keys.html

+0

[OK]を、多くのおかげで、あなた自身の正気/整合性チェックを定義する必要かもしれないと思います。 – ziggy

関連する問題