我正在使用休眠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/