底层实现查找集合的公用方法

@Override
public List<T> findCollectionByConditionNoPage(String hqlWhere,
final Object[] params, LinkedHashMap<String, String> orderby) {
String hql = "from " + entity.getSimpleName() + " o where 1=1 ";
hql = hql + hqlWhere + getOrderby(orderby);
final String finalhql = hql;
List<T> list = (List<T>) this.getHibernateTemplate().execute(
new HibernateCallback<T>() {


@Override
public T doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createSQLQuery(finalhql);
setParams(query, params);
return (T) query.list();
}


});
return list;
}


private void setParams(Query query, Object[] params) {
for (int i = 0; params != null && i < params.length; i++) {
query.setParameter(i, params[i]);
}


}


private String getOrderby(LinkedHashMap<String, String> orderby) {
StringBuffer buffer = new StringBuffer("");


if (orderby != null) {
buffer.append(" order by ");
for (Map.Entry<String, String> map : orderby.entrySet()) {
buffer.append(map.getKey() + " " + map.getValue() + ",");
}


buffer.deleteCharAt(buffer.length() - 1);
}


return buffer.toString();
}

你可能感兴趣的:(底层实现查找集合的公用方法)