Скажем, у меня есть эта nativeQuery в моей DAO:Как избежать выполнения запроса несколько раз?
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
литье перед.
«Класс» не является «объектом []». –
Хорошо, я могу это исправить. Но моя проблема в том, что этот запрос повторяется. Любые намеки? – Marcelo
Конечно, он повторяется, он вызывается в цикле. –