HQL «существует» генерирует неверный SQL - PullRequest
0 голосов
/ 21 марта 2012

Я использую следующий HQL для выбора компании, только если у нее есть сотрудники:

from Company as c 
where c.companyKey = :companyKey 
and exists (from Employee as e where e.companyKey = c.companyKey)

В SQL часть «существует ...» обычно записывается как «существует (выберите * из... "или" существует (выберите 1 из ... ". Сгенерированный в Hibernate SQL является" существует (выберите employee1_.company_key, employee1_.dept_key, ... "- перечислены все столбцы в ссылочной таблице.

Это приводит к "java.sql.SQLException: Неверный синтаксис рядом с ','". Я попытался выполнить сгенерированный SQL напрямую, и я подтвердил, что ошибка вызвана перечислением нескольких столбцов в подзапросе, используемом"Существует".

Я пытался указать один столбец в подзапросе HQL, но это, кажется, неверный синтаксис HQL (было бы полезно, если бы в документах Hibernate было полное определение HQL, скореенесколько смутных примеров о кошках). Я использую Hibernate 3.2.1 и Sybase ASE 11/12/15.

Кто-нибудь может предложить синтаксис HQL для решения этой проблемы? Очевидно, было бы просто использовать nativSQL, но я бы предпочел не загрязнять DAO несколькими стратегиями.

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