gpt4 book ai didi

java - 编辑前 JPA 分离

转载 作者:行者123 更新时间:2023-11-30 06:50:03 27 4
gpt4 key购买 nike

以下引用 JPA 的代码块有什么区别:

 private void sample1(){
Entity entity=em.find(1);
em.detach(entity);
entity.setProperty(property);
em.persist;
}

 private void sample2(){
Entity entity=em.find(1);
entity.setProperty(property);
em.merge;
}

最佳答案

假设这两种方法都在事务上下文中..

第一个方法将产生一个EntityExistsException,因为您将尝试保留一个已经设置了 id 字段的实体。如果在这里使用合并而不是持久化,这将是正确的代码。如果您更新的属性是 id 本身,那么它可能会起作用(除非有一些依赖项已被急切加载,那么您可能会偶然发现一些问题)。

在第二个示例中,您不需要调用合并,因为持久性提供程序将在事务提交时自动更新实体(在方法返回时)。

关于java - 编辑前 JPA 分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42998357/

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