| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Hidernate Oracle |
| Автор: Astoret 6.10.2010, 13:58 | ||||||
| Есть удаленный сервер Oracle 9.2, есть приложение Spring-Hipernate3 к нему подключена еще база MySQL. С MySQL приложение работает нормально но возникает проблема с Oracle. Когда пытаюсь сделать постраничную выборку select появляются ошибки:
после долгого поиска понял что проблема в том что запрос заканчивается на:
Проверил что Оракл не поддерживает limit, нужно использовать ROWNUM только как это сделать? Пробовал подставлять разные диалекты: OracleDialect, Oracle9Dialect, Oracle9iDialect, Oracle10gDialect. Запрос не поменялся. Фрагмент моего DAO:
|
| Автор: Vasay 6.10.2010, 14:13 |
| Astoret, А можете показать конфиг? Как у Вас настроена работа с 2-мя базами? Возможно Вы пытаетесь использовать настройки для MySQl с Oracle? п.с. у Вас связка Spring-Hipernate3 или Spring-JPA-Hipernate3? |
| Автор: Astoret 6.10.2010, 14:27 | ||||
| Vasay, Да нет, настроено все нормально, простые выборки, где нет limit, он делает без проблем.
связка Spring-Hipernate3 |
| Автор: 0x00 7.10.2010, 09:41 |
| запрос в студию |
| Автор: Astoret 7.10.2010, 11:53 |
| Все, решил проблему. Оказалось проблема в моей невнимательности, как обычно, переменная ${hibernate.dialect} стояла одна и та же для Oracle и MySQL. Поэтому и не помогала замена диалектов. После исправления запрос к ораклу стал корректным без like, а с rownum и подзапросами. |