码迷,mamicode.com
首页 > Web开发 > 详细

HIBERNATE项目运用

时间:2018-07-26 10:51:56      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:方式   三种方式   get   异步加载   运用   this   写法   查询   ids   

=====================项目运用======================
多条件分页查询的dao写法:条件是不确定的,所以hql要拼出来。

public List<User> getUserByPage(User user, PageModel pageModel){
StringBuilder hql = new StringBuilder();
hql.append("select u from User as u where 1=1");
List<Object> params = new ArrayList<>();

if(user != null){
    if(StringUtils.hasText(user.getName())){
        hql.append(" and name like ? ");
        params.add("%"+user.getName()+"%");
    }
    if(StringUtils.hasText(user.getPhone())){
        hql.append(" and phone like ?");
        params.add("%"+user.getPhone()+"%");
    }
    if(user.getJob()!=null && StringUtils.hasText(user.getJob().getCode())){
        hql.append(" and job.code = ?");
        params.add(user.getJob().getCode());
    }
}
hql.append(" order by createDate asc");
return this.findByPage(hql.toString(), pageModel, params);

}

使用第三种方式要在 userDao实现类里加deleteUser方法:
public void deleteUser(String[] userIds){
StringBuilder hql = new StringBuilder();
hql.append("delete from User where userId in(");
for(int i = 0;i<userIds.length;i++){
hql.append( i == 0 ? "?" : ",?");
}
hql.append(")");
this.bulkUpdate(hql.toString(), userIds);
}

--dao实现类增加方法
public void checkUser(String[] userIds,Short status){
StringBuilder hql = new StringBuilder();
hql.append("update User set status = ?,checker = ?,checkDate = ? where userId in(");
List<Object> params = new ArrayList<>();
params.add(status);
params.add(WebConstant.getSessionUser());
params.add(new Date());
for(int i = 0;i<userIds.length;i++){
hql.append( i == 0 ? "?" : ",?");
params.add(userIds[i]);
}
hql.append(")");
this.bulkUpdate(hql.toString(), params.toArray());
}
//批量删除角色
public void deleteRole(String[] ids){
StringBuilder hql = new StringBuilder();
hql.append("delete from Role where id in(");
Long[] params = new Long[ids.length];//id是long类型要注意
for(int i=0;i<ids.length;i++){
hql.append(i==0? "?":",?");
params[i] = Long.valueOf(ids[i]);
}
hql.append(")");
this.bulkUpdate(hql.toString(),params);
}

//异步加载树的hql
public List<Object[]> getModuleByCodeAndName() {
String hql = "select code,name from Module order by code asc";
return find(hql);
}

HIBERNATE项目运用

标签:方式   三种方式   get   异步加载   运用   this   写法   查询   ids   

原文地址:http://blog.51cto.com/hebinteng/2150269

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!