У меня ниже SQL-запрос:
SELECT * FROM (
SELECT S.aCol, S.bCol, S.cCol, ROW_NUMBER() OVER (ORDER BY S.cCol ASC) AS R
FROM myTable S WHERE S.cCol LIKE 'abc%') AS TEMP
WHERE R BETWEEN 0 AND 10 FOR FETCH ONLY
В основном этот запрос выполняет нумерацию страниц.Предложение промежуточное будет иметь разные значения для каждой выборки.
Теперь я хочу реализовать тот же запрос с использованием JPA.
Я нашел приведенную ниже справочную статью из одного вопроса SO:
http://weblogs.java.net/blog/2007/05/31/pagination-data-sets-sample-application-using-jsf-catalog-facade-stateless-session-a
Но в этой статье список результатов непосредственно передается для просмотра.Однако в моем случае я хочу установить результирующие столбцы в объекте переноса (mySearchTO) в качестве атрибутов.
Что-то вроде
mySearchTO.setBCol(resultSet.getString("B_COL"));
mySearchTO.setACol(resultSet.getString("A_COL"));
в sql.
Как этого добиться с помощью JPA?Кроме того, как я могу написать основной запрос в JPA?
Я не могу использовать Criteria Builder, так как мне нужно запустить мое приложение на WSAD 6.1
Запрос, который я выполняю:
select s.aCol, s.bCol, s.cCol from MyEntity s where s.cCol like 'abc' order by s.cCol asc
Над запросом возвращается список.
Как сопоставить его с моим TO ??Я пытаюсь
List<mySearchTO> myResult = new ArrayList<mySearchTO>();
myResult = myQuery.getResultList();
, где мой класс TO является простым классом с 3 свойствами (aCol, bCol и cCol) и геттерами и сеттерами.
Ошибка, которую я получаю:
Exception thrown : java.lang.ClassCastException: [Ljava.lang.Object; incompatible with com.SummaryTO
Но это дает