JPA Hibernate 事务问题

JPA Hibernate transaction issue

我无意中发现我可以持久化对象上的更改,即使我没有将它们写入事务中。我想知道这是怎么发生的,因为理论上,如果我不在事务中写入更改,我不应该能够更改数据库中的年龄值。 PS:如果我删除最后两行,它不会像预期的那样对数据库执行任何操作。

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();

您处于扩展 JPA 模式。所以实体管理器没有绑定到事务。

更改保留在持久性上下文中。一旦您提交事务,更改就会被刷新并提交。