将空列表作为参数传递给 JPA 查询会引发错误
2022-08-31 20:59:26
如果我将空列表传递到 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();
因为列表是空的,Hibernate在SQL中将其生成为“IN()”,这给我带来了高超音速数据库的错误。
在Hibernate问题跟踪中有一个票证,但那里没有太多的评论/活动。我不知道其他ORM产品或JPA规范中的支持。
我不喜欢每次都必须手动检查空对象和空列表的想法。有没有一些众所周知的方法/扩展?您如何处理这些情况?