在JPA中,我定义了一个将返回String的本机sql,
@NamedNativeQuery(name = "alert",
query = " select distinct c.accountId from account c ",
resultClass = String.class)
Run Code Online (Sandbox Code Playgroud)
错误信息是
org.hibernate.MappingException: Unknown entity: java.lang.String
Run Code Online (Sandbox Code Playgroud)
有线索吗?谢谢
ese*_*sej 18
@SqlResultSetMappings({
@SqlResultSetMapping(name = "alertMapping", columns = {
@ColumnResult(name = "accountId")})
})
@NamedNativeQuery(name = "alert",
query = " select distinct c.accountId from account c ",
resultSetMapping = "alertMapping")
Run Code Online (Sandbox Code Playgroud)
用法:
EntityManager em = ...... / injected / etc
TypedQuery<String> query = em.createNamedQuery("alert", String.class);
List<String> accountIds = query.getResultList();
Run Code Online (Sandbox Code Playgroud)
(未经检查的语法,但我希望基本的想法来)
对于NamedNativeQueries,只有在结果实际映射到实体时才能使用resultClass.也可以不指定结果映射,在这种情况下,您将获得一个ListObject [].列表的每个元素都是一条记录,您必须将每个Object显式地转换为您想要的类型.嗯,最后一部分可能只适用于NativeQueries而不是Named - 抱歉当前不确定.
| 归档时间: |
|
| 查看次数: |
21755 次 |
| 最近记录: |