SQL語句轉換成HQL語句?
1、如果是Query query = session.createQuery("")的話,試一下去掉前面的“select *”即createQuery方法內的條件直接是“from ......”,有幾個是可以用的,因為支持部分SQL。不行的話就用下面的格式(排序必用):
select OBJECT(o) from A o where o.b in(21,32) select OBJECT(o) from A o order by o.b ASC2、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查詢語句 Query query = session.createQuery(hql); query.setString("name","%"+name+"%"); query.setString("info","%"+info+"%"); System.out.println("*********"+hql)
;第三種方式:HQL查詢語句(查詢條件只能為英文或數字,漢字在傳遞到hibernate內部時出現亂碼問題)
String hql = "from Subject as s where s.subname like '%"+name+"%' and s.subinfo like '%"+info+"%'";
//調用session的獲得數據列表方法,傳遞HQL查詢語句Query query = session.createQuery(hql);注:Subject為數據庫表subject映射的類;它有相應的屬性subname、subinfo及相應的get和set方法;sub為Subject的一個實例化對象。