Hibernate 使用HQL的 in 时要注意判断in的值(list)是否包含数据

如果你使用 HQL的 in,例如:

sessionFactory.getCurrentSession()
                    .createQuery("select hlInfo.id, count(id) from HouseImg where hlInfo.id in :idList")

这时候要确认 idList的size不为0

改为如下:

  if(idList.size()!=0) {
            List result = sessionFactory.getCurrentSession()
                    .createQuery("select hlInfo.id, count(id) from HouseImg where hlInfo.id in :idList")
                    .setParameterList("idList",idList)
                    .list();
  }

如果为空,你查询的时候会出错,因为语句变成了

select hlInfo.id, count(id) from HouseImg where hlInfo.id in ()
posted @ 2013-11-27 14:58  无忧之路  阅读(2802)  评论(0编辑  收藏  举报
无忧之路