Читаю сейчас Hibernate in action, и кое-что я не понимаю(видимо из-за плохого английского),
а именно там есть пример с Item и Bid:
class Item
{
private Set<Bid> bids;
...
public void addBid(Bid bid)
{
bids.add(bid);
bid.item = this;
}
}
class Bid
{
public Item item;
...
}
Т.е. мы имеем bidirectional связь. Собственно и вопрос, а зачем так делать? Что-то
изменится, если из Bid мы не будем обратно ссылаться на Item? Или в такой фиче
нуждается hibernate для своих каких-нибудь замут?
Здравствуйте, Foror, Вы писали:
F> Т.е. мы имеем bidirectional связь. Собственно и вопрос, а зачем так делать? Что-то
F> изменится, если из Bid мы не будем обратно ссылаться на Item? Или в такой фиче
F> нуждается hibernate для своих каких-нибудь замут?
Просто напросто пока ты не вызовешь save() или commit(), bid не будет ничего знать об item, поэтому мы сообщаем об этом явно.
Что касается замут hibernate, то в маппинг-файле должно быть определено свойство inverse="true" (со стороны многих, для связи один ко многим, и с любой из сторон для связи многие ко многим), иначе hibernate не будет знать как правильно сгенерировать SQL-запрос.
... << RSDN@Home 1.1.4 stable rev. 510>>