【发布时间】:2016-01-23 10:35:47
【问题描述】:
假设我的 DAO 中有这个 nativeQuery:
SELECT a, b, c FROM table
它返回我需要的所有值。
问题是我的结果太多,我需要查询只运行一次,而不是对找到的每一行都运行。
我正在检索查询结果并将所有值设置到一个名为 Class 的类(值对象)中,如下所示:
public List<Class> listClass() {
List<Class> listaObjs;
String nativeQuery = "SELECT a, b, c FROM table";
SQLQuery q = getSession().createSQLQuery(nativeQuery);
int totalRecords = q.list().size();
System.out.println("Total records: " + totalRecords);
listaObjs = q.list();
// For every ROW in query Result
for (int i = 0; i < totalRecords; i++) {
Object[] objs = (Object[]) q.list().get(i);
Class item = new Class();
// For every COLUMN in that ROW
for (Object obj : objs) {
item.setValueA((String) objs[0]);
item.setValueB(((String) objs[1]));
item.setValueC(((String) objs[2]));
listaObjs.add(item);
}
}
return listaObjs;
}
我有点卡在这里,因为我以前从未将这个 Object[] 转换为 Class 。
【问题讨论】:
-
Class不是Object[]。 -
好的,我可以解决这个问题。但我的问题是关于该查询被重复。有什么提示吗?
-
当然是重复的,是循环调用的。
标签: java hibernate hibernate-native-query