gpt4 book ai didi

java - JPA native 查询返回类

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:41:36 24 4
gpt4 key购买 nike

在 JPA 中,我定义了一个将返回 String 的 native sql,

@NamedNativeQuery(name = "alert", 
query = " select distinct c.accountId from account c ",
resultClass = String.class)

错误信息是

org.hibernate.MappingException: Unknown entity: java.lang.String

有什么线索吗?谢谢

最佳答案

@SqlResultSetMappings({
@SqlResultSetMapping(name = "alertMapping", columns = {
@ColumnResult(name = "accountId")})
})
@NamedNativeQuery(name = "alert",
query = " select distinct c.accountId from account c ",
resultSetMapping = "alertMapping")

用法:

EntityManager em = ...... / injected / etc
TypedQuery<String> query = em.createNamedQuery("alert", String.class);
List<String> accountIds = query.getResultList();

(未经检查的语法,但我希望基本思想能够通过)

对于 NamedNativeQueries,您只能在结果实际映射到实体时使用 resultClass。也可以不指定结果映射,在这种情况下,您将返回 Object[] 的 List。列表中的每个元素都是一个记录,您必须将每个对象显式转换为您想要的类型。嗯,最后一部分可能仅适用于 NativeQueries 而不是 Named - 抱歉,目前不确定。

关于java - JPA native 查询返回类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com