2014-05-15 4 views
0

Я изначально делал единственный запрос переменной, и мне пришлось добавить другую переменную в мой оператор и, похоже, не может заставить ее работать правильно или найти прямой ответ на ожидаемый синтаксис. Я уже проверил, что все правильно сопоставлено, и ничего не происходит в запросе.HQL multiple where clauses

Вот что я пытаюсь делать, не работает правильно

return getHibernateTemplate().find("from Pricing_Data where rate_class=?", rate_class + "where utility=?", utility); 

Orginally я имел, так как это и работает, как ожидалось

return getHibernateTemplate().find("from Pricing_Data where rate_class=?", rate_class); 

ответ

2

Попробуйте это:

return getHibernateTemplate().find("from Pricing_Data where rate_class=? AND utility=?", new Object[]{rate_class, utility}); 

Hibernate Find method

+0

Благодаря оба из ответов помогли мне в конечном итоге переформатирования мой запрос «вернуть getHibernateTemplate() найти. (» От Pricing_Data где rate_class = и полезности =? «Rate_class, утилиты);» Просто нужно обработать некоторое числовое форматирование в соответствии с моей трассировкой стека, но запрос, по крайней мере, проходит сейчас! – gcalex5

1

Попробуйте использовать запрос,

from Pricing_Data where rate_class = ? and utility = ? 

Тогда setParameter для rate_class и utility.

Запросы SQL/HQL могут иметь второе (третье и т. Д.) Предложение where только в подзапросах.