【发布时间】:2014-08-20 16:05:14
【问题描述】:
如何在运行时为 JPA 查询设置动态参数数量?例如,我将 JPA 查询设置为
String queryString="Select x from Item x WHERE x.itemName=:name AND x.itemLocatio=:location";
Query q=QueryFactory.createQuery(queryString);
q.setParameter("itemName", name);
q.setParamater("itemLocation",location);
List<Item> result=q.getResultList();
如果我只想传递 itemName 并且不想在 location 上进行过滤,那我需要为 location 设置什么值呢?在我们可以选择在运行时不为一个或多个字段设置参数的情况下,如何进行此类查询?我通过在运行时检查参数值来做到这一点,但是由于查询字符串和参数设置是通过大量 if 检查创建的,因此代码变得太长。
【问题讨论】: