需要更换标准的HQL建议

时间:2013-05-16 04:18:59

标签: hibernate hql criteria

我有如下所示的使用标准,您能告诉我们如何用HQL替换它

public List<abc> getdef(String numericid) {
        Criteria query = session.createCriteria(abc.class);

        if(numericid!=null) {
            query.add(Restrictions.eq("digitalid", numericid));
        }
      List<abc> cghflist = query.list();


        return cghflist;
    }

1 个答案:

答案 0 :(得分:0)

Query query;
if(numericid != null){
   query = session.createQuery("from abc where digitalid = :id");
   query.setParameter("id", numericid);
}else{
   session.createQuery("from abc");
}
List list = query.list();

如果查询更加复杂,并且只有!= null时需要添加多个参数,则应为每个参数构造字符串查询。

StringBuilder sql = new StringBuilder();
sql.append("from abc where 1=1");

    if(someParam != null){
      sql.append(" and someParam = :someParam");
    } 

您需要在设置参数时小心。