Hibernate native query return List Object List
我正在使用一个hibernate的NQL查询,该查询为我提取了两列:
1 2 3 4 5 6 | 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
当我尝试显示列表中的结果时,在运行时
。我也尝试在列表中使用String数组,但是它不起作用。以下是我的代码段,它们给出错误:
当我仅使用List时:
1 2 | List<String> Thumbnailpaths = pathquery.list(); System.out.println(Thumbnailpaths.get(i).replace("\","\\\\\")); |
在编译时没有错误,如果保持原样,也没有任何问题,但是要显示的行上方显示类广播异常。
当我使用列表数组时:
1 2 3 |
在运行时再次出现类广播异常
也
请告诉我是否有解决方案可以在NQL中获取多列结果,然后放入列表中。
注意:看起来这里没有显示泛型,并且只在我的代码段中写入了列表
是的,在这种情况下,hibernate将返回对象数组(Object [])-返回多列。但是您仍然可以使用"实体查询"返回一个实体对象,而不是"原始"值。
不幸的是,Hibernate没有提供一种标准的方法来检索表的列的结果并将其直接存储到Entity Object。您必须手动解析查询所获取的数据。
hibernate查询将返回对象数组列表,即
1 2 3 4 5 6 7 |
以上代码将帮助您解析