#java #hibernate #db2
#java #гибернация #db2
Вопрос:
У меня возникли проблемы в гибернации, когда я использую ROW_NUMBER() DB2, в нем говорится QueryException: неопределенный псевдоним: ROW_NUMBER. Что делать? Спасибо
String strQuery= " SELECT c_.name, c_.id, c_.description, ROW_NUMBER() OVER(ORDER BY
c_.name) AS rownum FROM Category as c_ ";
Query query = getHibernateTemplate().getSessionFactory().
getCurrentSession().createQuery(strQuery);
Комментарии:
1. Как вы используете вызов его из гибернации. Пожалуйста, вставьте свой код
2. чтобы избежать такого рода расхождений между базами данных, hibernate имеет dialects.javabeat.net/qna/163-list-of-hibernate-sql-dialects Для конкретного использования я хотел бы точно знать, что вы пытаетесь сделать. например, если вы собираетесь использовать rownumber для разбивки на страницы, для этого существуют специальные методы
Ответ №1:
ROW_NUMBER()
недопустимая функция в DB2, но она есть в SQL Server. Вам нужна rownumber()
функция. Измените свой запрос на следующий, и он должен работать:
String strQuery= " SELECT c_.name, c_.id, c_.description, rownumber() OVER(ORDER BY
c_.name) AS rownum FROM Category as c_ ";
Комментарии:
1. Неправильно, ROW_NUMBER() — это функция в DB2 ibm.com/developerworks/data/library/techarticle /…