[Hibernate框架]Hql语句in中带参数的写法
最近遇到两次在hql的in中传递参数的问题,最初让我纠结万千。
?
在dao层已经封装好了一个使用hql获取数据的方法:
也就是说,前面使用数组集合的话则必须调用setParameterList方法。那么改一下Dao层的setParameter方法即可达到通用了:
private Query setParameter(Query query, Map<String, Object> map) {if (map != null) {Set<String> keySet = map.keySet();for (String string : keySet) {Object obj = map.get(string);//这里考虑传入的参数是什么类型,不同类型使用的方法不同if(obj instanceof Collection<?>){query.setParameterList(string, (Collection<?>)obj);}else if(obj instanceof Object[]){query.setParameterList(string, (Object[])obj);}else{query.setParameter(string, obj);}}}return query;}?
最初还以为是hibernate不够智能化,原来是自己没学好,项目经验相当重要呀...
?
?