Ответ 1
Я отправил электронное письмо Ayende Rahien по этому вопросу и поблагодарил его за ответ. Он сказал, что
ответ заключается в том, что такого инструмента нет, но преобразование обычно довольно просто.
Я несколько дней назад опубликовал вопрос о Querying для коллекций с API-интерфейсом Criteria, и после всех ответов, которые, как я вижу, невозможна то, что я пытаюсь выполнить с критериями, есть ошибка для ситуации в nhibernate, а также в спящем режиме
Я использовал DetachedCriteria, чтобы собрать все критерии, и список действительно длинный. Последний круг цепочки - это глючные критерии, поэтому мне нужно изменить все мои detachedcriteria на HQL.
Поэтому мой вопрос заключается в том, есть ли какой-либо инструмент или способ преобразования критериев в HQL.
или же
Есть ли способ заставить Критерии и Hql работать вместе?
Я отправил электронное письмо Ayende Rahien по этому вопросу и поблагодарил его за ответ. Он сказал, что
ответ заключается в том, что такого инструмента нет, но преобразование обычно довольно просто.
перестановка с форумов hibernate... не уверен, что это актуально для nhibernate или обновлено
from: max Команда Hibernate
Добавлено: Вс Дек 24, 2006 7:12 утра
Это очень упрямый фольклор, который критерии переводится в HQL. Критерии идут непосредственно на SQL, но нет прямого публичного api, чтобы получить его программным способом.
...
перевод дважды не очень эффективен;)
http://forum.hibernate.org/viewtopic.php?t=968990&view=next&sid=50454aa6cec8d482198117fbd398ca70
Я изменил API-интерфейс Hibernate, чтобы генерировать запросы JPQL, пытаясь сохранить интерфейс в основном похожим. Название моего проекта - Criteria2JPQL:
https://sourceforge.net/projects/criteria2jpql/
Поскольку этот перевод является простой операцией в памяти, которая генерирует стандартный запрос JPQL, проблема с большой производительностью не возникает. С другой стороны, идея этого проекта возникла из плохих исполняемых запросов sql в Hibernate Critera, включая множество ненужных объединений. Мы испытали использование Criteria2JPQL в нашем проекте в моей компании и заметили, что эти ненужные соединения исчезли.
Какую версию nHibernate вы используете? Я думаю, что использование последней версии может решить вашу проблему, так как 2.0 GA имеет множество изменений.