0

我有如下所示的使用标准,请您告诉我们如何用 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;
    }
4

1 回答 1

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");
    } 

设置参数时需要小心。

于 2013-05-16T14:12:46.227 回答