我相信休眠首先将您的HQL查询转换为SQL,然后才尝试绑定您的参数。这意味着它不能从重写查询
param = ?
到param is null
。尝试使用Criteria API:
Criteria c = session.createCriteria(CountryDTO.class); c.add(Restrictions.eq("type", type)); c.add(status == null ? Restrictions.isNull("status") : Restrictions.eq("status", status)); List result = c.list();


