Java HQL不返回结果,但在直接查询时可以工作

Java HQL不返回结果,但在直接查询时可以工作,java,sql,hibernate,oracle11g,hql,Java,Sql,Hibernate,Oracle11g,Hql,我正在HQL中尝试下面的查询,但没有得到任何结果。有人能帮我解释为什么我没有得到任何结果吗?我试图直接查询数据库(请参见下面的SQL),得到了12条记录。但是HQL给了我0条记录 “原因”我输入以下字符串-“'XXX1','YYY 2'” 我使用的数据库是Pracle 11g String queryStr = "from DefectsTran t join t.defects d where d.releaseName=:rel and t.defectCause in :cause and

我正在HQL中尝试下面的查询,但没有得到任何结果。有人能帮我解释为什么我没有得到任何结果吗?我试图直接查询数据库(请参见下面的SQL),得到了12条记录。但是HQL给了我0条记录

“原因”我输入以下字符串-“'XXX1','YYY 2'”

我使用的数据库是Pracle 11g

String queryStr = "from DefectsTran t join t.defects d where d.releaseName=:rel and t.defectCause in :cause and t.latestRecord=:lastrec"; 

Query q = session.createQuery(queryStr);
q.setString("rel", release);
q.setString("cause", filter2);
q.setString("lastrec", "Y");
SQL查询,当我在TOAD中使用时,它工作得很好

select count(*) 
from QC10.defects_tran t
inner join QC10.defects on DEFECT_ID_FK_DT = RECORD_ID
where 
    DEFECT_CAUSE in ('Data Request Issue', 'Functioning as Expected', 'User Education Required', 'Test Script Incorrect', 'Test Specific')
    and t.latest_record = 'Y'

而不是
q.setString(“原因”,过滤器2)使用
q.setParameterList(“原因”,过滤器2)。过滤器2必须是
集合
子类型。请阅读有关setParameterList可用的其他重载的更多信息:

我尝试了此操作,但仍然没有得到任何行“List filter12=new ArrayList(Arrays.asList(filter2.split(“,”)”);“请通过将org.hibernate.SQL logger level设置为debug来调试hibernate生成的SQL。我肯定你的代码中有个bug,谢谢。我的数据库数据有问题。