私のアプリケーション内には、ある程度の時間(30秒から5分)かかるプロセスがあり、その間にJPAを介してデータベースを操作します。
私の問題は、プロセスの状態をそのdbエンティティに設定したいということです。
void runProcess(Process process) {
process.setState("Started.");
em.merge(process);
... db manipulations
process.setState("First phase finished.");
em.merge(process);
... db manipulations
process.setState("Process finished.");
em.merge(process);
}
問題は、最初の更新のみが行われ、他の更新は無視されたままになることです。
エラーは発生せず、Hibernateログでプロセスの更新を3回確認できます。
Hibernate: update process set state=? where id=?
ただし、最初の更新のみが行われます。
ありがとう。