【发布时间】:2010-03-02 09:19:14
【问题描述】:
我的程序中有一个奇怪的休眠行为。 我有两个具有单对关系的类:好和价格:
@Entity
@Table(name="GOODS")
public class Good {
....
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="GOOD_ID")
private Set<Price> prices = new HashSet<Price>();
...}
@Entity
@Table(name="PRICES")
public class AuctionPrice {
..
@Column(name="PRICE")
private double price;
...}
当我更新包含商品的层次结构时,我在休眠 sql 日志中看到这样的查询:
update PRICES set GOOD_ID=null where GOOD_ID=?
...
update PRICES set GOOD_ID=? where id=?
适用于所有价格(当价格没有实际变化时)。
为什么hibernate将此字段设置为null,然后将其还原回来,是否可以避免这种情况?
【问题讨论】: