Проблема обновления Hibernate - PullRequest
0 голосов
/ 02 марта 2010

У меня странное поведение 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, и после того, как оно вернет его обратно, возможно ли избежать этого?

1 Ответ

0 голосов
/ 02 марта 2010

Если GOOD_ID не может быть нулевым (что я предполагаю), вы должны объявить это так:

@JoinColumn(name="GOOD_ID", nullable = false)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...