3 つのエンティティ モデルがあるとします。
History.class
DetilHistory.class
Logs.class
次のようにコードを書く必要があります。
//Create History
History h = new History(new Date(), 1, 1, 1);
h.save();
//Create Detil History
DetilHistory dh = new DetilHistory(1, 1, 1, h.id);
dh.save();
//Create Logs
Logs l = new Logs(1,1,1,dh.id);
l.save();
最初に dh.referecendIdOfHistory の h.id を取得する必要があります。そして、最初に l.referecendIdOfDetilHistory の dh.id を取得する必要があります。
しかし、時々、次のようにそのコードの下の変数 h または dh を変更する必要があります。
h.closeDate= new Date();
h.value = 2;
h.save();
Detil Historyでもやります。
残念ながら、JPAはそのようにすることはできません。JPAがそれを許可しない理由を知っています。
次の点について問題があります。
- 永続化するために渡された切り離されたエンティティ
- JPA が初期化されていません
- 等
私はそれらを解決しました:
- JPAPluginStartTx(rollback)
- JPA.em().flush(); JPA.em().getTransaction().commit();
誰かがそれを行うための最良の方法を教えてください。