В своих объектах Entity я помещаю все аннотации JPA в поля. Они хорошо работают с Project Lombok, который генерирует все геттеры и сеттеры для меня, значительно упрощая мой код.
EDIT:
Это также происходит, когда я перемещаю аннотацию вниз к методу
@OneToMany(targetEntity = ChannelDAOHb.class, mappedBy = "server", orphanRemoval = true)
@org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.ALL, org.hibernate.annotations.CascadeType.DELETE})
public Set<ChannelDAO> getChannels() {
System.out.println("Getting some channels");
...
}
getChannels().add(new Channel("someChannel")); //Nothing printed here
Однако кажется, что пользовательский метод получения для одного из моих полей связи OneToMany не вызывается. Даже что-то разрушительное, как это
public Set<ChannelDAO> getChannels() {
throw new RuntimeException("Take that, Hibernate");
}
getChannels().add(new Channel("someChannel"));
Это исключение НИКОГДА не выбрасывается.
Что здесь происходит? Почему не вызывается мой добытчик?