gpt4 book ai didi

java - Hibernate原生查询返回List对象列表

转载 作者:行者123 更新时间:2023-12-01 09:30:57 34 4
gpt4 key购买 nike

我正在使用 hibernate NQL 查询,它获取两列:

SELECT object_name, 
object_name_location
FROM dbo.object_stacks
WHERE object_id IN (SELECT thumb_nail_obj_id
FROM dbo.uois
WHERE Upper(NAME) LIKE Upper('%testobj%'))

当我仅选择一列(即仅选择对象名称)时 - 一切正常,但使用两列时出现错误

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.String

在运行时,当我尝试显示列表中的结果时。我也尝试在列表中使用字符串数组,但它不起作用。下面是我的代码片段,它给出了错误:

当我仅使用列表时:

List<String> Thumbnailpaths = pathquery.list();
System.out.println(Thumbnailpaths.get(i).replace("\\", "\\\\"));

编译时没有错误,如果保持原样也没有任何错误,但上面的显示行给出了类转换异常。

当我使用列表数组时:

List<String[]> Thumbnailpaths = pathquery.list();

System.out.println(Thumbnailpaths.get(i)[0].replace("\\", "\\\\"));

这里再次出现运行时的类转换异常

此外,Criteria.ALIAS_TO_ENTITY_MAP 根本没有帮助,因为它使逻辑变得更加复杂。我只需要数据库表中的 2 列值。

请告诉我是否有任何解决方案可以在 NQL 中获取多列结果然后放入列表中。

注意:看起来这里泛型没有显示,我的代码片段中只写了列表

最佳答案

是的,在这种情况下,hibernate 将返回对象数组 (Object[]) - 返回多列。但您仍然可以使用"Entity queries"返回实体对象而不是“原始”值。

关于java - Hibernate原生查询返回List对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39407733/

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