2016-01-29 107 views
0

我想寫原生查詢:冬眠本地查詢變量

@NamedNativeQuery(name = "getUncheckedTests", 
    query = "SELECT t.test_name AS test_name, q.question AS question, @counter \\:= COUNT(ua.is_checked=0) AS uncheckedAnswers FROM user_answer ua" + 
      " JOIN result r on r.id = ua.result_id" + 
      " JOIN test t on r.test_id = t.id" + 
      " JOIN question q on ua.question_id = q.id" + 
      " WHERE r.is_checked = false AND q.is_open = true AND ua.is_checked = false" + 
      " AND r.test_id IN (SELECT t.id FROM result r" + 
      " JOIN test t on t.id = r.test_id" + 
      " JOIN user u on u.id = r.user_id" + 
      " WHERE r.permission = 2 AND u.id = :userId) and r.permission = 1 and @counter > 0" + 
      " GROUP BY ua.question_id") 

但是,我得到空的結果@counter > 0不能正常工作。我可以執行這個查詢就在工作臺,但是沒有結果,如果它放在Hibernate作爲本地查詢

回答

0

你或許應該檢查實際的SQL休眠通過enabling logging of the statements或使用log4jdbc,並確保你有適當的參數執行查詢執行。

+0

我相信,因爲我在工作臺上做同樣的工作 – quento

+0

我的意思是檢查是否Hibernate拿起你期望使用的參數等。沒有這一點就像猜測。 –