在我的应用程序中,我有一个需要一些时间(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 日志,我可以看到进程更新三次:
Hibernate: update process set state=? where id=?
但只会进行第一次更新。
谢谢。