2010-12-22 65 views
0

比如我有一個名爲查詢:沒有設置命名查詢的參數?

@NamedQuery(name = "Students", query = "SELECT s FROM Student WHERE s.active = 'Y' OR s.name= :name) 

有時我想設置「名稱」參數有值,有時沒有。當我沒有設置它時會引起錯誤嗎?

+0

相關:http://stackoverflow.com/questions/2444603/optional-parameters-with-named-query-in-hibernate – Bozho 2010-12-22 12:33:43

回答

0

我發現了這樣一個解決方案:

if (my test criteria){ 
    query.setParameter("name", "name of a student"); 
    } else { 
    query.setParameter("name", " "); 
    } 

我設置名稱參數用空格字符,所以它的工作原理。

1

您必須始終設置它。否則 - 創建兩個查詢 - 一個用param,另一個不用。你可以把公共部分的常數(static final