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

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中的所有公共非静态方法。我不希望这种行为,有人可以帮助我吗?
提前致谢。

最佳答案

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

休眠创建实体并填充数据库中的数据时,将调用Getter和setter。由于Entity类必须满足Java bean规范,因此除了hashCode(),toString()之外,不应再有其他公共方法。

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

10-10 20:24