Неверный SQL-запрос на метод подсчета с Play / Sybase / Hibernate, когда несколько PK - PullRequest
0 голосов
/ 11 февраля 2011

В моей модели несколько PK (3), я использую Play Framework с Hibernate, и таблица, отображаемая моей моделью, хранится в базе данных Sybase.

Я сделал Junit, где save () / find () / delete () работает очень хорошо. Но метод count () этого не делает, он генерирует исключение SqlGrammarException. Установив jpa.debugSQL=true, я перехватил SQL-запрос, сгенерированный Hibernate, и он некорректен:

select count((systempara0_.interface, systempara0_.name, systempara0_.origine)) as col_0_0_ from system_parameters systempara0_

Sybase не допускает запятые в операторе count , если я отбрасываю их и задаю только один столбец в операторе, запрос выполняется нормально.

Я где-то неправ? Есть ли ошибка в Hibernate? Есть ли обходной путь?

Заранее спасибо

Sybase Version : Adaptive Server Enterprise/15.0.3
Play Framework 1.1.1

Обновление: Из спящего Javadoc я заметил метод с именем supportsTupleCounts() в классе SybaseASE15Dialect, который возвращает false. http://docs.jboss.org/hibernate/core/3.6/javadocs/org/hibernate/dialect/Dialect.html#supportsTupleCounts()

НО Play Framework 1.1.1 встраивает Hibernate 3.5.6, где этот метод не существует ... Вот причина!

1 Ответ

1 голос
/ 12 февраля 2011

Насколько я знаю, вы можете понизить версию диалект-файлов.Вы не можете изменить версию Hibernate в игре, потому что они сделали несколько патчей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...