关键是这个get方法,现在只是能够支持简单的键值对:
@SuppressWarnings("unchecked")
@Override
public T getByElse(Map params) {
if(params.size() == 0) {
return null;
} else {
Iterator> iterator = params.entrySet().iterator();
String sql = "from " + clazz.getSimpleName() + " where ";
while (iterator.hasNext()) {
Entry 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 entry = iterator.next();
query.setParameter(entry.getKey(), entry.getValue());
}
try {
return (T)query.uniqueResult();
} catch (Exception e) {
return null;
}
}
}
我想让这个getByElse方法也能够支持模糊查询,但水平有限,希望高手指点
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
1.选种数据结构,一个信息位存放是否like,或大于小于,between and的类型种类,一个存放占位名称,一个存放参数值,自己程序判断编写hql
2.不想搞复杂自己拼hql的话,直接使用qbc