突然发现Query.setParameterList原来是如此:
有两种参数的重载方式:
Java代码
public Query setParameterList(String name, Collection vals) throws HibernateException;
public Query setParameterList(String name, Object[] vals, Type type) throws HibernateException;
它们都是用在hql/sql语句 in (...)情况下的, list或object[]会组成in集合, 并不是本以为的变成:
set(0, para1);
set(1, para2);
...
另外有一个方法,需要注意了:
Java代码
public Query setParameters(Object[] values, Type[] types) throws HibernateException;
这里又不是用在in了,而是顺序组装参数:
Set(0, param1);
Set(1, param2);