Проблемы с HQL Query - PullRequest
       5

Проблемы с HQL Query

0 голосов
/ 03 ноября 2011

Ниже мой HQL-запрос.

delete from Table t 
where 
    (t.column1=:value1 and t.column2=:value2) 
    or (t.column3=:value3 and t.column4=:value4) 

Когда я запускаю этот запрос, он генерирует следующий SQL, который является неправильным.

delete from Table t 
where 
    t.column1=? 
    and t.column2=?
    or t.column3=? 
    and t.column4=?

В сгенерированном SQL удаляются скобки, что дает неверный результат.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 03 ноября 2011

это не структурированное решение, а просто заставить все работать. Можете ли вы попробовать это

 delete from Table t 
    where 
        1=1 AND (t.column1=:value1 and t.column2=:value2) 
        or (t.column3=:value3 and t.column4=:value4) 

У меня не установлен hibernate на momenet, но я верю, что однажды эта проблема возникла у меня, и я решил ее так (думаю, так)

Проблема логики NHibernate HQL

https://hibernate.onjira.com/browse/HHH-550

Пройдя по этим ссылкам, я выяснил (это может быть неправильно), что Hibernate отлично переводит эти запросы. «И» имеет более высокий приоритет, поэтому результаты запроса вообще не должны обрабатываться ... может быть какая-то другая причина

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