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 に答える