gpt4 book ai didi

java - 如何使用 Hibernate 只更新所有实体属性的一部分

转载 作者:搜寻专家 更新时间:2023-10-31 08:22:06 24 4
gpt4 key购买 nike

我收到一个包含 30 个字段的 JSON,我的实体是从这个 JSON 构建的。问题是:不应更新两个字段(两个日期)。

如果我使用 entity.merge,两个字段都会更新。

如何避免这 2 个字段被更新?

也许使用 criterion.Example?

有没有什么方法可以在我不编写大量 HQL 的情况下做到这一点?

最佳答案

如果您永远不想更新这两个字段,您可以用 @Column(updatable=false) 标记它们:

@Column(name="CREATED_ON", updatable=false)
private Date createdOn;

一旦你加载了一个实体并修改了它,只要当前的SessionEntityManager 是打开的,Hibernate 就可以通过脏检查机制跟踪变化。然后,在 flush 期间,将执行 SQL 更新。

如果您不喜欢所有列都包含在 UPDATE 语句中,您可以使用动态更新:

@Entity
@DynamicUpdate
public class Product {
//code omitted for brevity
}

然后,UPDATE 语句中将只包含修改的列。

关于java - 如何使用 Hibernate 只更新所有实体属性的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39915906/

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