如果我将空列表传递给JPA查询,我会收到错误.例如:
List<Municipality> municipalities = myDao.findAll(); // returns empty list
em.createQuery("SELECT p FROM Profile p JOIN p.municipality m WHERE m IN (:municipalities)")
.setParameter("municipalities", municipalities)
.getResultList();
Run Code Online (Sandbox Code Playgroud)
因为列表是空的,所以Hibernate在SQL中将其生成为"IN()",这使我在Hypersonic数据库中出错.
在Hibernate问题跟踪中有一个这样的票,但那里没有很多评论/活动.我不知道其他ORM产品或JPA规范中的支持.
我不喜欢每次都必须手动检查空对象和空列表的想法.是否有一些众所周知的方法/扩展?你如何处理这些情况?