我在JPA2和休眠版本5.0.3-final中使用Spring(非引导)4.1.1。 我们观察到的是,在JMS侦听器从AWS SQS收到消息的特定流程中,有99%的事务执行3个更新查询来更新数据库,但是在1%的情况下,在这3个查询之后,它执行相同的3个使用较旧的值再次查询,从而导致值的触发器。有时这三组查询间隔几秒钟,有时几分钟。最初我们以为可能是对此方法的另一次调用导致了这种情况,但是我们的日志文件中始终只有一组日志可用。我怀疑这与保持会话状态的线程有关,但不确定,因为我之前从未在休眠状态下看到过这种情况。 根据最近的观察,这仅在更新查询中发生。
答案 0 :(得分:0)
这是由另一个在同一实体上调用merge()并导致重新加载自身及其某些子代的流引起的。