Java JPA查询上的pojo映射
假设我有一个关于jpa的问题,比如Java JPA查询上的pojo映射,java,sql,spring,spring-data,jpql,Java,Sql,Spring,Spring Data,Jpql,假设我有一个关于jpa的问题,比如 @Query( value = "SELECT user_no, count(*) " + "FROM users " + "where status = 'VCS' group by user_task_no", nativeQuery = true ) List<Object> getUsers(); 然而,我希望结果是 [ {
@Query(
value = "SELECT user_no, count(*) " +
"FROM users " +
"where status = 'VCS' group by user_task_no",
nativeQuery = true
)
List<Object> getUsers();
然而,我希望结果是
[
{
"user_no": 100,
"count": 2
},
{
"user_no": 200,
"count": 2
},
{
"user_no": 300,
"count": 3
}
]
我试着让一门课像
public class UserCount {
private Long userNo;
private Long count;
public UserCount(Long userNo, Long count) {
this.userNo = userNo;
this.count = count;
}
}
成功了
@Query(
value = "SELECT new fullpackage.UserCount(user_no, count(*)) " +
"FROM users " +
"where status = 'VCS' group by user_task_no",
nativeQuery = true
)
List<UserCount> getUsers();
你知道如何解决这个问题吗?新语法适用于jpql,而不是sql。不能将其与nativeQuery一起使用。您必须执行以下操作:
@Query(
"SELECT new fullpackage.UserCount(userTaskNo, count(*)) " +
"FROM Users " +
"where status = 'VCS' group by userTaskNo"
)
List<UserCount> getUsers();
你可以用投影是的我已经用过了
syntax error at or near "." ...
could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
@Query(
"SELECT new fullpackage.UserCount(userTaskNo, count(*)) " +
"FROM Users " +
"where status = 'VCS' group by userTaskNo"
)
List<UserCount> getUsers();