我对 Hibernate SQLQuery.list()
方法有这种奇怪的行为。
问题描述如下:
我有一个 sql 选择查询,它只从数据库中检索单个列(组)(即,select group from peopleGroup where groupid = 10
)
我在对象数组列表中收到上述列表的结果
即,
SQLQuery hQuery = session.createSQLQuery("select group from peopleGroup where groupid = 10");
List<Object[]> result = (List<Object[]>)hQuery.list();
理想情况下,结果应包含对象数组列表,但当我检查时,结果的第 0 个索引包含字符串对象而不是对象数组。
但是,如果我使用多个列,假设查询的 select 子句中有 2 列,我能够看到结果的第 0 个索引作为对象数组,即 Object[2]={"group", "groupid"};
即使在查询的 select 子句中只提到一列,我如何获取对象数组?
最佳答案
Docs状态:
List list()
Return the query results as a List. If the query contains multiple results per row, the results are returned in an instance of Object[].
自己转换,像这样。
List<Object[]> l = new ArrayList<>();
for(Object o : query.list()) {
Object[] arr = {o};
l.add(arr);
}
关于java - Hibernate SQLQuery 列表方法返回对象而不是对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45584185/