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 模式。所以实体管理器没有绑定到事务。
更改保留在持久性上下文中。一旦您提交事务,更改就会被刷新并提交。
我无意中发现我可以持久化对象上的更改,即使我没有将它们写入事务中。我想知道这是怎么发生的,因为理论上,如果我不在事务中写入更改,我不应该能够更改数据库中的年龄值。 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 模式。所以实体管理器没有绑定到事务。
更改保留在持久性上下文中。一旦您提交事务,更改就会被刷新并提交。