【发布时间】:2018-11-07 05:12:02
【问题描述】:
如何将 JPQL 中的参数设置为可选参数?我不想做 9 个“if else”来检查它是否为空
我得到了函数 filtradoMonedas (filterCoins),它使用这 3 个可选参数过滤对象 Moneda(coin),但如果有一个空参数,它就不起作用。
如果不设置空参数,这很好用,如果 cantidad 或 ano 是“”,则返回错误查询的异常。只是想把它作为一个可选的。方法如下:
public List<Moneda> filtradoMonedas(Divisa divisa, BigDecimal cantidad,
BigDecimal ano){
EntityManager em = getEntityManager();
Query consulta = em.createQuery("SELECT m FROM Moneda m "
+ "WHERE m.divisa = :divisa "
+ "AND m.cantidad= :cantidad "
+ "AND m.ano = :ano");
consulta.setParameter("divisa", divisa);
consulta.setParameter("cantidad", cantidad);
consulta.setParameter("ano", ano);
List<Moneda> filtradoMonedas = (List<Moneda>) consulta.getResultList();
// sincronizar los objetos devueltos con la base de datos
for (Moneda m : filtradoMonedas) {
em.refresh(m);
}
em.close();
return filtradoMonedas;
}
【问题讨论】:
标签: java jpa filter jpql optional-parameters