为了账号安全,请及时绑定邮箱和手机立即绑定

SpringMVC整合hibernate自己写了一个通用Dao层,我想把get方法做的更加强大点

SpringMVC整合hibernate自己写了一个通用Dao层,我想把get方法做的更加强大点

猛跑小猪 2019-03-14 18:14:14
关键是这个get方法,现在只是能够支持简单的键值对:@SuppressWarnings("unchecked")    @Override    public T getByElse(Map<String, Object> params) {        if(params.size() == 0) {            return null;        } else {            Iterator<Entry<String, Object>> iterator = params.entrySet().iterator();            String sql = "from " + clazz.getSimpleName() + " where ";            while (iterator.hasNext()) {                Entry<String, Object> entry = iterator.next();                sql += entry.getKey() + " = :" + entry.getKey();                if(iterator.hasNext()) {                    sql += " and ";                }            }            Query query = sessionFactory.getCurrentSession().createQuery(sql);            iterator = params.entrySet().iterator();            while (iterator.hasNext()) {                Entry<String, Object> entry = iterator.next();                query.setParameter(entry.getKey(), entry.getValue());            }            try {                return (T)query.uniqueResult();            } catch (Exception e) {                return null;            }        }    }    我想让这个getByElse方法也能够支持模糊查询,但水平有限,希望高手指点
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

1.选种数据结构,一个信息位存放是否like,或大于小于,between and的类型种类,一个存放占位名称,一个存放参数值,自己程序判断编写hql

2.不想搞复杂自己拼hql的话,直接使用qbc


查看完整回答
反对 回复 2019-04-16
  • 1 回答
  • 0 关注
  • 408 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信