У меня возникают некоторые проблемы, получающие двунаправленную ассоциацию "один ко многим", работающую с JoinTables. Это то, что я получил:
Класс A:
@OneToMany
@JoinTable(name="join_table",
JoinColumns={@JoinColumn(name="a_id")},
inverseJoinColumns={@JoinColumn(name="b_id")}
)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
public Set<B> getBs() {
return bs;
}
Класс B:
@ManyToOne
@JoinTable(name="join_table",
joinColumns={@JoinColumn(name="b_id", insertable=false,updatable=false)},
inverseJoinColumns={@JoinColumn(name="a_id", insertable=false,updatable=false)})
public A getA() {
return a;
}
Если я создам экземпляр A и B, добавьте экземпляр B в и сохраните. Оно работает. Но когда я перезагружаю экземпляр A и пытаюсь получить доступ к набору Bs, он бросает LazyInitializationError с сообщением "незаконный доступ к загрузке коллекции".
Где я здесь ошибаюсь?:) Может ли кто-нибудь указать мне пример двунаправленной ассоциации, которая использует таблицу соединений. И где собственность хранится в классе A, я искал документацию на hibernate.org, но я не могу ее найти.
-Daniel