Java HQL不返回结果,但在直接查询时可以工作
我正在HQL中尝试下面的查询,但没有得到任何结果。有人能帮我解释为什么我没有得到任何结果吗?我试图直接查询数据库(请参见下面的SQL),得到了12条记录。但是HQL给了我0条记录 “原因”我输入以下字符串-“'XXX1','YYY 2'” 我使用的数据库是Pracle 11gJava 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
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,谢谢。我的数据库数据有问题。