有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    您处于扩展JPA模式。因此,实体管理器不绑定到事务

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