选择In Clause JPA - EclipseLink使用Collection作为参数

时间:2016-08-24 20:09:28

标签: java jpa persistence eclipselink jpa-2.0

我使用eclipselink 2.5.2并尝试执行查询:

select bm.id from Bombom bm join Rosquinha r          
            where bm.nb = :numeroBombom and
            r.tipoRosquinha in :tiposRosquinha and
            r.status = :statusRosquinha and
            bm.situacao.id in :situacoesBombom

Passing parameter as a list, like:

QueryParameter param = new QueryParameter("situacoesBombom", Arrays.asList(1, 2, 3, 4));

query.setParameter(param.getKey(), param.getValue());

但是除了这个查询执行没有错误,过滤器没有正确执行。它就像没有IN子句一样执行,给我返回了很多Bombom ID。

我看到我的同事做了这样的查询:" bm.situacao.id in(:situacaoBombom1,:situacaoBombom2,:situacaoBombom3)"并单独传递IN的每个参数,但我认为它应该是我需要的方式吗?

0 个答案:

没有答案