HQL语句
- 1.hql更新 ?? ???String?hql?=?"update?PhUser?set?realName=?"; ?? ???int?row=this.getSession().createQuery(hql).setString(0,?"小李想").executeUpdate(); ?? ???PhUser?类名? ??2.hql删除 ?? ???String?hql?=?"delete?PhUser?a?where?a.userId=2"; ?? ???int?row=this.getSession().createQuery(hql).executeUpdate(); ?? ???还有个这种的格式: ?????final?String?hql?=?"delete?PhRoleFunction?as?a?where?a.roleId?=?"?? ?????+?roleId; ?????this.getHibernateTemplate().execute(new?HibernateCallback()?{ ?? ????public?Object?doInHibernate(Session?session) ?? ??????throws?HibernateException,?SQLException?{ ?? ?????return?session.createQuery(hql).executeUpdate(); ?? ????} ?????});更新也可以写成这样的格式 ??3.hql单表查询 ?? ???String?hql?=?"from?PhUser?a?where?a.userId="?+?userId; ?? ???List?list?=?this.getHibernateTemplate().find(hql); ?? 4.hql多表查询 ?? ???(1)String?hql?=?"select?new?map(a.CUId?as?CUId,a.unitName?as?unitName,b.CUFId?as?CUFId,b.UFName?as?UFName)? ?? from?PhCorrelativeUnit?a,PhCorrelativeUnitFunction?b?where?a.CUId=b.CUId"; ?? ???List?list?=?this.getHibernateTemplate().find(hql); ?? ???多个表的字段放到map中,map的键值就是as后面的别名,如果没有as就是字段名 ?????(2)?String?hql?=?"SELECT NEW COM.PHANTOM.APPEAL.ACTION.BEAN.DEALPAPER(A.ID AS ID, A.BILLID AS BILLID, A.STATE AS STATE, A.CREATOR AS CREATOR, A.CREATETIME AS CREATETIME , 26. B.EVENTCONTENT AS EVENTCONTENT , C.REALNAME AS REALNAME, B.BILLCODE AS BILLCODE, 27. B.CITNAME AS CITNAME )
? FROM PHDEALBILL A
????? ,PHACCEPTBILL B
????? ,PHUSER C 28.WHERE A.DEPARTMENTID="+ billid+ "
?? AND A.STATE = 0
?? AND A.BILLID = B.BILLID 29.AND A.CREATOR = C.USERID
?ORDER BY A.BILLID"; ?? ????return?this.getHibernateTemplate().find(hql); ?? ???另外就是写一个类,对应你要查询的字段,这里的类名是new?com.phantom.appeal.action.bean.DealPaper,里面对应查询的字段名 ?? 5.得到记录数 ?? ???String?hql?=?"select?count(*)?from?PhUser"; ?? ???List?list?=?this.getHibernateTemplate().find(hql); ?? ???return?((Long)?list.get(0)).intValue();