2017-09-05 73 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