У меня странное поведение Hibernate в моей программе.
У меня есть два класса с одним отношением: хорошо и цена:
@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;
...}
Когда я обновляю иерархическую структуру, которая содержит товары, я вижу такие запросы в hibernate sql log:
update PRICES set GOOD_ID=null where GOOD_ID=?
...
update PRICES set GOOD_ID=? where id=?
для всех цен (при отсутствии фактических изменений цен).
Почему hibernate установил для этого поля значение null, и после того, как оно вернет его обратно, возможно ли избежать этого?