您已经告诉Spring将该查询视为本地查询。否则,它将尝试根据JPA规范对其进行验证。
尝试:
@Query(value = "SELECT ...", nativeQuery = true)public List<Object[]> transactions();
请记住,在这种情况下不能使用NEW运算符语法,因此必须将结果作为数组处理
Object。
或者
如果要使用将结果直接映射到POJO类,则必须这样做(假设您使用的是JPA 2.1+):
1) 定义映射:
@SqlResultSetMapping( name="transactionsMapping", classes={ @ConstructorResult( targetClass=ConsolidateResDB.class, columns={ @ColumnResult(name="transdate"), @ColumnResult(name="orderreqid") // further mappings ... } ) })
2) 定义一个本地查询
@NamedNativeQuery(name="transactions" , query="SELECT DATE_FORMAT(ts, '%d-%m-%Y') AS transdate, IFNULL(COUNT(orderreqid),0) ... ")
3) 在
CrudRepository不带
@Query注解的情况下定义此方法:
public List<ConsolidateResDB> transactions();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)