【发布时间】:2011-07-14 23:04:09
【问题描述】:
在我的实体对象中,我将所有 JPA 注释放在字段上。它们与 Project Lombok 配合得很好,它为我生成了所有的 getter 和 setter,大大简化了我的代码。
编辑:
当我将注释向下移动到方法时,这似乎也会发生
@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 关联字段之一的自定义 getter 似乎没有被调用。甚至像这样具有破坏性的东西
public Set<ChannelDAO> getChannels() {
throw new RuntimeException("Take that, Hibernate");
}
getChannels().add(new Channel("someChannel"));
永远不会抛出该异常。
这里发生了什么?为什么我的吸气剂没有被调用?
【问题讨论】:
-
@Marcelo 不,我的字段不公开