在我的实体对象中,我将所有JPA注释放在字段上。他们与Project Lombok很好地合作,它为我生成了所有的getter和setters,极大地简化了我的代码。即使注释在方法上,自定义方法也不会被调用?
编辑:
这似乎也发生了,当我移动注释到方法
@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
但是它似乎是自吸我的一对多关联的领域之一是不被称为。甚至像这样破坏性的东西
public Set<ChannelDAO> getChannels() {
throw new RuntimeException("Take that, Hibernate");
}
getChannels().add(new Channel("someChannel"));
这个异常从不被抛出。
这是怎么回事?为什么我的getter没有被调用?
你的领域是公开的吗? – Marcelo
@Marcelo不,我的领域不公开 – TheLQ