HQL not likeクエリ


今日はヒップホップのRestrictionsでnot likeで調べたいですが、Resticationsはnotとlikeの方法がないということが分かりました。ilikeは大きさを区別しないで書くというあいまいな検索を表しています。Retrictions.not(Restictions.like)で調べたいですが、Hyberrateで生成されたSQL文を調べたら、not propertyName like valueが出ました。
     後の結果はRestictionsがsql Restricationの方法を発見しました。使えます
     Restrictions.sql Restication(「VERFYuRECORD not like%」+value+「%」);
     VERFY_RECORDはnullまたはvalue文字列を含めて使用できます。
     Restrictions.sql Restication("(VERFYuRECORD is null or VERFYURECORD not like'%)          + ssoUser.getUserType()+「%」)
     他の条件があれば、以下のようにすることができます。
 
List<Criterion> criterion = new ArrayList<Criterion>();
    ReportSSOUser ssoUser = (ReportSSOUser) UserInfoUtils.getCurrentLoginUser();
    if (StringUtils.isNotBlank(engineering_id)) {
      criterion.add(Restrictions.eq("engineering_id", engineering_id));
    } else {
      criterion.add(Restrictions.eq("engineering_id", ssoUser.getEngineeringId()));
    }
    if (StringUtils.isNotBlank(ssoUser.getSectionId())) {
      criterion.add(Restrictions.eq("section_id", ssoUser.getSectionId()));
    }
    if (StringUtils.isNotBlank(model.getReport_id())) {
      criterion.add(Restrictions.eq("report_id", model.getReport_id()));
    }
    criterion.add(Restrictions.eq("report_status", RptReportInstance.REPORT_STATUS_WAIT_APPROVAL));
    //                  
    if (ssoUser.getUserType() != null) {
      criterion.add(Restrictions.sqlRestriction("( VERIFY_RECORD is null or VERIFY_RECORD not like '%"
          + ssoUser.getUserType() + "%' )"));
    }
   まとめは以下の通りです
         criterion.add()の中のHibernateはいずれもそれをSQL文whereの後のandとしてつなぎます!