将空列表作为参数传递给JPA查询会引发错误。
- 论坛
- 将空列表作为参数传递给JPA查询会引发错误。
15 浏览
将空列表作为参数传递给JPA查询会引发错误。
如果我将一个空列表传递给JPA查询,就会出现错误。
例如:
Listmunicipalities = myDao.findAll(); // 返回空列表 em.createQuery("SELECT p FROM Profile p JOIN p.municipality m WHERE m IN (:municipalities)") .setParameter("municipalities", municipalities) .getResultList();
由于列表是空的,Hibernate在SQL中生成的查询为"IN ()",这在Hypersonic数据库中导致错误。
在Hibernate问题跟踪中有相关的票,但没有太多的评论/活动。我也不清楚其他ORM产品或JPA规范的支持情况。
我不喜欢每次都手动检查null对象和空列表的想法。是否有一些常见的方法/扩展来处理这种情况?你是如何处理这些情况的?