读书人

[Hibernate框架]Hql话语in中带参数的写

发布时间: 2012-08-29 08:40:14 作者: rapoo

[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不够智能化,原来是自己没学好,项目经验相当重要呀...

?

?

读书人网 >软件架构设计

热点推荐