0
我有一个嵌套的选择Hibernate查询:休眠嵌套查询参数
((EntityManager)Component.getInstance("entityManager")).createQuery("SELECT e FROM someEntity e " +
"WHERE e.field1 = ?1 AND e.field2 IS NOT NULL AND " +
"e.field3 IN " +
"(SELECT t.field3 from otherEntity t " +
"WHERE t.id.field4 = ?2 " +
"AND t.field5 > 0 " +
"AND t.field6 != 'SUBMITTED')")
.setParameter(1, processor.ONE_PARAM)
.setParameter(2, processor.OTHER_PARAM)
.getResultList();
如果我是运行此查询,我没有得到任何错误或警告,并没有结果(返回null)。如果我用硬编码值替换第二个参数更改查询我得到的结果我想到:
((EntityManager)Component.getInstance("entityManager")).createQuery("SELECT e FROM someEntity e " +
"WHERE e.field1 = ?1 AND e.field2 IS NOT NULL AND " +
"e.field3 IN " +
"(SELECT t.field3 from otherEntity t " +
"WHERE t.id.field4 = hardcoded_other_param " +
"AND t.field5 > 0 " +
"AND t.field6 != 'SUBMITTED')")
.setParameter(1, processor.ONE_PARAM)
.getResultList();
外部和嵌套查询工作,单独和共同正确的Oracle。做参数在Hibernate嵌套选择中不起作用,还是我错过了某些东西?
我用冬眠3.31与JSF 1.2和Seam 2
我接受这个答案,当我改变了sql的使用变量,它开始工作。 – gebuh 2012-01-06 16:19:55