2011-09-28 36 views
0

我有以下情況:JPQL和clausole IN,沒有發現

在DAO類:

... 
Query q = em.createNamedQuery("myQuery"); 
q.setParameter("attr", "value"); 
List<MyObj> listMyObj = q.getResultList(); 
... 

在我的文件orm.xlm,我定義這個查詢:

<named-query name="myQuery"> 
    <query><![CDATA[ 
     select m from MyEntity1 
     where id_est in (select mm.id from MyEntity2 where mm.id_est = :attr) 
    ]]></query> 
</named-query> 

一切正常,沒有配置問題和/或代碼,但是當在sql中執行相同的查詢返回期望的項目時,此查詢返回0個元素。爲什麼?在JPQL中我忽略了一些東西?

+0

需要更多的細節? – giulius

+0

這是CACHE的問題? – giulius

+0

嘗試將日誌記錄打開並查看它生成的確切SQL。 –

回答

0

在這種情況下,如果mm.id_est是一個字符串,當你設置參數不使用

" 'value' " 

但使用

" value " 

...這是我的問題。幸運的是,感謝這篇文章,我意識到,在我寫的代碼中,我寫了這裏寫在StackOverflow上