私は2つのテーブルを持つデータベースを持つシンプルなweb-appを持っています。データベースが外部で変更されたときのJPA
管理者は、SQLスクリプト(PHPMyAdminなど)から直接最初のテーブルを手動で変更することができ、この編集後に2番目のテーブルに書き込む必要があります。
私はそれを行うことはできますか?
私は2つのテーブルを持つデータベースを持つシンプルなweb-appを持っています。データベースが外部で変更されたときのJPA
管理者は、SQLスクリプト(PHPMyAdminなど)から直接最初のテーブルを手動で変更することができ、この編集後に2番目のテーブルに書き込む必要があります。
私はそれを行うことはできますか?
あなたは@PrePersist注釈を使用することができます。 http://docs.oracle.com/javaee/5/api/javax/persistence/PrePersist.html
public final class SampleBusinessProcess {
@PrePersist
private void preperist(final MyObject obj) {
entityManager.store(new Object2());
}
}
最初の1が変更された場合、これは、別のテーブルに第二の実体を格納します。
編集: トリガーはJPAコードを開始できません。それはJPAの一部ではありません。
Oracleデータベース内のトリガーは、JavaコードをJavaトリガーとして開始できます。
私はあなたがmysqlデータベースを使用していると仮定しているので、databaselevelに、変更のために2番目のテーブルをポーリングするtimerserviceでトリガーを作成する必要があります。
これは私のアプリから直接データを変更した場合にのみ有効ですが、これは動作します。私が第三者のアプリケーションから行を変更した場合、このメソッドは機能しません。 – CeccoCQ
その後、データベースの内部にトリガーを作成する必要があります。 –
データを2つのテーブルに格納しますか? –
私は最初のテーブルにデータをプリロードしました。ユーザーがデータを編集(挿入、削除、または更新)するとき、私のアプリは2番目のテーブルに行を書き込む必要があります。 – CeccoCQ