@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東西,報告實體變得骯髒不堪,總有一個遞增的版本的更新只有字段。
我知道鄰@PoptimisticLock(排除=真),但我堅持休眠3.2.0 GA和此註釋不可用。 有什麼解決方法可以使用Hibernate 3.20 GA這個功能嗎?
嘗試從上下文中刪除對象? – JMelnik
我不確切地知道'dirty'是什麼意思,但如果這些對象不同步,那麼您不能指責JPA。該應用程序負責保持同步。 – siebz0r
@ siebz0r我的意思是,即使只有來自reportItems集合的項目修改,hibernate認爲Report實體被修改並進行更新。但更新僅修改版本字段。 – tibtof