java JPA Hibernate事务问题
我无意中发现,即使我不在事务中写入更改,也可以在对象上保留更改。我想知道这是怎么发生的,因为理论上,如果我不在事务中写入更改,我就不能更改数据库中的年龄值。 PS:如果我删除最后2行,它不会像预期的那样对db产生任何影响
var emf = Persistence.createEntityManagerFactory("java2c2PU");
var em = emf.createEntityManager();
var p = em.find(Pisica.class, 5);
p.setAge(5);
em.getTransaction().begin();
em.getTransaction().commit();
# 1 楼答案
您处于扩展JPA模式。因此,实体管理器不绑定到事务
更改保留在持久性上下文中。一旦您提交了一个事务,就会刷新并提交更改