Hibernate 如何在jpa中检索记录和字段值
考虑以下实体:Hibernate 如何在jpa中检索记录和字段值,hibernate,jpa,Hibernate,Jpa,考虑以下实体: @Entity public class User { private int id; private String name; private String family; //getters and setters } 和sql: select * from (select row_.*, first_Value(rownum) over (order by rownum desc) countـ from (select *
@Entity
public class User {
private int id;
private String name;
private String family;
//getters and setters
}
和sql:
select *
from (select row_.*, first_Value(rownum) over (order by rownum desc) countـ
from (select * from user) row_)
正如您可能猜到的,sql的结果集由四列组成:
id, name, family, countـ
我通过以下方式检索用户表记录作为用户列表:
String myQuery = "select * from (select row_.*, first_Value(rownum) over (order by rownum desc) count_
from (select * from user) row_)"
Query query = entityManager.createNativeQuery(myQuery, User.class);
List<User> users = query.getResultList();
现在的问题是,我如何通过调用getResultList或任何其他hibernate等价物一次来检索用户列表并计算值
我使用Oracle 11g和Jpa Hibernate实现3.6
提前谢谢。我想count是个保留字。我会像这样重新组织您的查询:
String myQuery = "SELECT "
+ "id, "
+ "name, "
+ "family, "
+ "cnt "
+ "FROM ("
+ "SELECT "
+ "user.*, "
+ "first_Value(rownum) over (order by rownum desc) AS cnt "
+ "FROM "
+ "user "
+ ")";
Query query = entityManager.createNativeQuery(myQuery);
List<Object[]> resultList = query.getResultList();
当然,您也可以使用*而不是id、姓名、家族、cnt。代码中的生成器是什么?对不起,我用myQuery替换了它。。。