0
比如我有一個名爲查詢:沒有設置命名查詢的參數?
@NamedQuery(name = "Students", query = "SELECT s FROM Student WHERE s.active = 'Y' OR s.name= :name)
有時我想設置「名稱」參數有值,有時沒有。當我沒有設置它時會引起錯誤嗎?
比如我有一個名爲查詢:沒有設置命名查詢的參數?
@NamedQuery(name = "Students", query = "SELECT s FROM Student WHERE s.active = 'Y' OR s.name= :name)
有時我想設置「名稱」參數有值,有時沒有。當我沒有設置它時會引起錯誤嗎?
我發現了這樣一個解決方案:
if (my test criteria){
query.setParameter("name", "name of a student");
} else {
query.setParameter("name", " ");
}
我設置名稱參數用空格字符,所以它的工作原理。
您必須始終設置它。否則 - 創建兩個查詢 - 一個用param,另一個不用。你可以把公共部分的常數(static final
)
相關:http://stackoverflow.com/questions/2444603/optional-parameters-with-named-query-in-hibernate – Bozho 2010-12-22 12:33:43