5
我有一個JPQL命名查詢,需要List
作爲參數。我使用在IN
短語參數:是否可以通過並測試JPA中的空列表?
...WHERE x.id IN :list
我想這樣做以下但語法顯然不會讓我:
...WHERE :list IS EMPTY OR x.id IN :list
也不會:
...WHERE SIZE(:list) = 0 OR x.id IN :list
是我想在JPA 2.0命名查詢中不可能做什麼?我知道如何通過標準API或使用普通的舊JPQL字符串來完成。
你的完全正確路線。我希望將代碼中的條件移入查詢本身,但JPQL BNF不支持這種情況。 – 2013-02-27 17:18:16
我會在我微弱的辯護中提供以下種類的SQL(而不是JPQL)在生成的場景中經常出現:'SELECT x FROM y WHERE 1 = 1;'(例如,組裝WHERE條款有時會確保'1 = 1'在'WHERE'子句中,所以動態程序集不需要做你所說的那種if/then邏輯。話雖如此,我認爲我不能在JPQL中脫身。謝謝。 – 2013-02-27 17:19:58