关键是这个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
添加回答
举报
0/150
提交
取消