您的位置:首页 > 其它

hibernate的三种查询

2015-09-08 12:37 211 查看
项目中的方便查阅

1)Criteria查询接口

public UserModel getUserByLoginName(String loginName) {

Criteria criteria =
this
.getSession().createCriteria(UserModel.class);
criteria.add(Restrictions.eq("userName",StringUtil
.toString(loginName)));

//criteria.addOrder(Order.desc("userName"));排序
List list = criteria.list();

if (list !=
null && list.size()> 0) {
return (UserModel)list.get(0);
}else{
return
null
;
}
}

2)hql语句查询

public List<RoleModel> getPersonalRoleById(Integer id)
{
String hql = "from RoleUserModel a where a.userId="+id;
Query query = this.getSession().createQuery(hql);
List<RoleUserModel> roleuserList = query.list();
List<RoleModel> returnList = new ArrayList<RoleModel>();
for(RoleUserModel a:roleuserList){
String hql1 = "from RoleModel a where a.roleId="+ a.getRoleId();
Query query1 = this.getSession().createQuery(hql1);
returnList.add((RoleModel)query1.list().get(0));
}
return returnList;
}

3)原生SQL查询

public DeptModel getDeptByUserid(int userid) {
String sql = "select DEPTNO, DEPTCODE, DEPTNAME, STATUS, ORDERNO, PARENTNO from dept t " +
"where t.deptnoin (select du.deptno from deptuser du where du.user_id="+userid+")";
List<Map<String, Object>> list = this.findObjectListMapBySql(sql);
DeptModel dept = null;
if(list != null && list.size() > 0){
dept = new DeptModel();
Map<String, Object> deptMap = (Map<String,Object>) list.get(0);
dept.setDeptNo(NumberUtil.toInt((BigDecimal)deptMap.get("DEPTNO")));
dept.setDeptCode(deptMap.get("DEPTCODE").toString());
dept.setDeptName(deptMap.get("DEPTNAME").toString());
return dept;
}else{
return dept;
}
}

public List<Map<String, Object>> findObjectListMapBySql(String sql){
SQLQuery sqlQuery=(SQLQuery) getSession().createSQLQuery(sql.toUpperCase()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
return sqlQuery.list();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: