В моей модели несколько 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, где этот метод не существует ... Вот причина!