Java 创建自定义hibernate查询

Java 创建自定义hibernate查询,java,hibernate,Java,Hibernate,我正在尝试创建自定义查询, 但是我的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 tes

我正在尝试创建自定义查询, 但是我的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()

然后它就可以正常工作了。

如果要使用参数列表,请使用setParameterList方法


myLabels可以是集合或数组。

myLabels是列表吗?我认为对于一个列表它应该可以正常工作。labels是一个字符串=“'a','b',应该是一个列表吗?@tantantan是的,应该是。现在我有了java.util.ArrayList不能转换为java.lang.Strings,如果我使用setString instedOf参数,然后放置标签字符串呢?是的,我尝试了,它工作得很好。谢谢:)
this.getSession()
                .createQuery("FROM com.dummy.tralala.MyClass AS settings where settings.name in (:labels)")
                .setParameterList("labels",myLabels).list();