JPA:EntityManager flush()方法行为

时间:2016-01-10 05:13:13

标签: jpa entitymanager

当我这样做时:

isNew

执行第二行后,我可以看到跟踪中的SQL插入和插入的DB中的一行。但是当我这样做时:

em.persist(entity);
em.getTransaction().commit();

在这种情况下,我可以在执行第二行后看到跟踪中的SQL插入,但是在DB中没有插入新行。只有在第三行执行后才会发生这种情况。

一旦INSERT被触发,INSERT是否应该立即在DB中放入一行?

1 个答案:

答案 0 :(得分:2)

是和否。您的语句在事务中完成,该事务应该与事务提交之前的任何其他会话隔离。事务提交后,所有修改都应对其他会话可见。