hibernate模糊查詢


 Criteria criteria = session.createCriteria(TaDiagnoseSystem.class);
   //增加查詢條件
   if(StringUtils.isNotEmpty(systemName)){
//    criteria.createCriteria("taDiagnoseSystemSubs").add(Restrictions.ilike("systemName", systemName, MatchMode.ANYWHERE));
    criteria.createCriteria("taDiagnoseSystemSubs").add(Expression.like("systemName", "%"+systemName+"%"));
   }

 

 

今天的項目中在用 Hibernate3.0進行 模糊查詢的時候,出現 中文亂碼,在網上查了好久資料,終於解決了,現在把整理后的貼出來。
Hibernate中實現 模糊查詢,可有以下三種方式: 

第一種方式:QBC查詢 
String name = "", info = ""; 
if (sub != null && sub.getSubname() != null) { 
name = sub.getSubname(); 

if (sub != null && sub.getSubinfo() != null) { 
info = sub.getSubinfo(); 

Criteria cr = session.createCriteria(Subject.class); 
cr.add(Expression.like("subname","%"+name+"%")); 
cr.add(Expression.like("subinfo","%"+info+"%")); 

第二種方式:HQL查詢語句 
String hql = "from Subject as s where s.subname like :name and s.subinfo like :info"; 
// 調用session的獲得數據列表方法,傳遞HQL查詢語句 
String  subnamevalue="要查詢的 中文值";
String   sql="";
sql   = "from Pfapp  where name like :subname "; 
Query query = session.createQuery(sql); 
query.setString("subname","%"+subnamevalue+"%");
System.out.println("*********"+sql); 

注:Subject為數據庫表subject映射的類;它有相應的屬性subname、subinfo及相應的get和set方法;sub為Subject的一個實例化對象。
另外說明的是:如果你不寫對象名稱,直接寫字段,那么 hibernate就按照數據庫字段進行查找 
如果你寫   (對象名.對象屬性),那么 hibernate就按照ormapping中的映射字段進行查找


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM