java - Hibernate 在查询后调用实体上的公共(public)方法,为什么?

标签 java hibernate postgresql netbeans6.5

我正在使用 hibernate 3.0(带有 posgre 8.3)、Java 1.6 和 Netbeans 6.5。我创建了一个 native 查询来返回所有唯一的最新条目,如下所示:

String query = "SELECT DISTINCT ON (origem) * FROM entrada " +
                "ORDER BY origem, horadata DESC";
        SQLQuery sqlQuery = this.getSession().createSQLQuery(query);
        sqlQuery.addEntity(Entrada.class);
        List entradas = sqlQuery.list();

当调用“sqlQuery.list()”时,Entrada 对象将按预期返回。但是 Entrada 对象中的所有公共(public)非静态方法都会被调用。我不想要这种行为,有人可以帮助我吗? 提前致谢。

最佳答案

什么是“所有”公共(public)方法?

当 hibernate 创建实体并填充数据库中的数据时,将调用 getter 和 setter。由于实体类必须满足 java bean 规范,因此除了 hashCode()、toString() 之外不应再有任何公共(public)方法...

关于java - Hibernate 在查询后调用实体上的公共(public)方法,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/630054/

相关文章:

java - "Impossible to execute Save action: org.hibernate.exception.DataException: could not execute statement"使用 OpenXava?

hibernate - 按多对多关系查询时从结果列表中排除项目

sql - 错误 : Column does not exist

sql - 如何在postgres中提取第一个和剩余的单词

java - 带有图标和标题的操作栏

java - 使用 hibernate 模板时 MySql 连接过多?

java - 在 Restful Web 服务中输入数据验证(是否使用空对象)

c++ - 插入数据库失败

java - Spring-MVC:调用 validator ,而不是从 Controller 内部

java - JTextField 中的占位符具有正确的方向