gpt4 book ai didi

java - 下面的代码将如何在 JPA 内部执行?

转载 作者:行者123 更新时间:2023-11-29 04:31:25 25 4
gpt4 key购买 nike

entityManager.getTransaction.begin();

Employee emp = new Employee();

emp.setName("Abc");

emp.setCity("Pune");

entityManager.persist(emp);

emp.setName("Xyz");

entityManager.getTransaction.commit();

我知道它会更新名称,但它在内部是如何工作的?比如执行 entityManager.persist(emp); 和执行 entityManager.getTransaction.commit(); 时,流程是什么,对数据库有什么影响?

最佳答案

当您调用 entityManager.persist(emp); 时,该实体并未物理持久保存在数据库中。它由 Persistence Provider 从那时起进行管理。

当您调用 entityManager.getTransaction.commit(); 时,这是生成持久化实体的实际物理插入的地方。

您可以通过调用 entityManager.flush() 告诉持久性提供者在事务提交之前执行插入数据库,这基本上使上下文与数据库同步。您必须记住,这不会提交事务,因此数据仍然可以回滚。

关于java - 下面的代码将如何在 JPA 内部执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43680240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com