作者:手机用户2702938061 | 来源:互联网 | 2023-01-31 18:31
1> Maciej Kowal..:
您告诉Spring将该查询视为本机查询.否则,它将尝试根据JPA规范对其进行验证.
尝试:
@Query(value = "SELECT ...", nativeQuery = true)
public List 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 transactions();