2017-09-05 45 views
0

我試圖創建一個自定義查詢, 但我的select返回空結果。創建自定義冬眠查詢

this.getSession() 
.createQuery("FROM com.dummy.tralala.MyClass AS test where test.name in (:labels)") 
.setParameter("labels",myLabels).list() 
; 

有什麼不對?

時,我不喜歡這樣

.createQuery("FROM com.dummy.tralala.MyClass AS test where test.name in ("+myLabelsString+")").list() 

那麼它工作得很好。

+2

「myLabels」是一個列表嗎?我認爲使用List應該可以正常工作。 – AnarchoEnte

+0

labels是一個字符串=「'a','b'」,應該是一個List? – TanTan

+2

@坦坦是的,它應該。 – Shirkam

回答

1

如果你想使用的參數列表,使用方法setParameterList

this.getSession() 
       .createQuery("FROM com.dummy.tralala.MyClass AS settings where settings.name in (:labels)") 
       .setParameterList("labels",myLabels).list(); 

myLabels可能是一個集合或數組。

+0

是的,我試過了,它的工作完美。謝謝 :) – TanTan