gpt4 book ai didi

java - 修改集合会使实体变脏

转载 作者:行者123 更新时间:2023-11-30 11:44:34 25 4
gpt4 key购买 nike

我有一个定义如下的实体

@Entity(name = "Report")
@Table(name = "REPORTS")
@org.hibernate.annotations.Entity(dynamicInsert = true, dynamicUpdate = true, selectBeforeUpdate = true)
public class Report implements java.io.Serializable {

/* other fields, getters and setters*/
@Column(name = "UPD_TIMESTAMP")
@Version
private Long updTimestamp;

@OneToMany(mappedBy = "report", fetch = FetchType.LAZY)
private Collection<ReportItem> reportItems = new ArrayList<ReportItem>();

public Collection<ReportItem> getReportItems() {
return reportItems;
}

public void setReportItems(Collection<ReportItems> reportItems) {
this.reportItems = reportItems;
}
}

问题是,当我修改 reportItems 中的某些内容时,Report 实体变脏了,并且总是有一个仅增加版本字段的更新。

我知道@OptimisticLock(excluded=true),但我坚持使用 Hibernate 3.2.0 GA,并且此注释不可用。 是否有任何可以与 Hibernate 3.20 GA 一起使用的此功能的解决方法

最佳答案

看看inverse关键字,也许这可以提供解决方案。 Here有解释。

编辑:事实证明这是预期的行为。 See this question

关于java - 修改集合会使实体变脏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10735155/

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