java - 自定义方法永远不会被调用,即使方法上有注释?

标签 java hibernate

在我的实体对象中,我将所有 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"));

永远不会抛出该异常。

这是怎么回事?为什么我的 getter 没有被调用?

最佳答案

Hibernate 默认使用反射。方法仅适用于您自己的 API。这减少了设置持久层所需的脚手架。

关于java - 自定义方法永远不会被调用,即使方法上有注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700985/

相关文章:

java - 如何运行 Android Activity 类的主要方法?

java - 卡经销商java gui

java - JSwing,如何在开始另一个操作之前进行 Jtable 渲染?

java - Eclipse 使用哪种 JPA 实现?

java - 使用struts2在jsp页面中显示字符串的值

java - 无法在 SonarQube 中获得成功的单元测试

hibernate - 运行应用程序出现Grails 2.4和hibernate4错误

java - Hibernate union-subclass (table per concrete class) "increment"的映射生成器很慢?

java - 长时间运行的方法会导致竞争条件

java - Hibernate、Spring、PostgreSQL - 列索引超出范围