`

query.setParameterList

阅读更多
突然发现Query.setParameterList原来是如此:
有两种参数的重载方式:
/**
* Bind multiple values to a named query parameter. The Hibernate type of the parameter is
* first detected via the usage/position in the query and if not sufficient secondly 
* guessed from the class of the first object in the collection. This is useful for binding a list of values
* to an expression such as <tt>foo.bar in (:value_list)</tt>.
* @param name the name of the parameter
* @param vals a collection of values to list
*/
public Query setParameterList(String name, Collection vals) throws HibernateException;

/**
* Bind multiple values to a named query parameter. This is useful for binding
* a list of values to an expression such as <tt>foo.bar in (:value_list)</tt>.
* @param name the name of the parameter
* @param vals a collection of values to list
* @param type the Hibernate type of the values
 */
public Query setParameterList(String name, Object[] vals, Type type) throws HibernateException;


它们都是用在hql/sql语句 in (...)情况下的, list或object[]会组成in集合, 并不是本以为的变成:
set(0, para1);
set(1, para2);
...

另外有一个方法,需要注意了:
/**
* Bind values and types to positional parameters.
*/
public Query setParameters(Object[] values, Type[] types) throws HibernateException;

这里又不是用在in了,而是顺序组装参数:
Set(0, param1);
Set(1, param2);
...
分享到:
评论

相关推荐

    hql语句查询

    query.setParameterList("categories", categories); query.setParameter("specialId", 42); ``` ### 排序与多规则排序 HQL支持`order by`子句进行排序。可以指定多个排序规则,如`asc`(升序)和`desc`(降序)。...

    Hibernate框架]Hql语句in中带参数的写法

    query.setParameterList(string, (Collection) obj); } else { query.setParameter(string, obj); } } } return query; } ``` 在上面的代码中,我们使用setParameterList方法来传递集合参数。这将确保参数的...

    hql语句的学习,很有用的东西

    query.setParameterList("groups", groups); ``` 另外,HQL也支持子查询,可以嵌套在`from`、`where`、`select`等子句中,以实现更复杂的逻辑。例如,找出所有拥有最多项目的项目经理: ```java query = session....

    hibernate的HQL的模糊查询

    query.setParameterList("name", names); ``` 2. **使用`between`关键字**:对于连续范围的模糊查询,可以使用`between`。例如,查询年龄在20到30之间的用户: ```java query.setParameter("ageStart", 20); query...

    Hibernate在查询条件中创建List集合

    query.setParameterList("orderIds", orderIdsList); List&lt;User&gt; usersWithOrders = query.list(); ``` 在这里,`orderIdsList`是一个包含我们要查询的订单ID的List,通过`setParameterList`方法,我们可以将这个...

    Hibernate 系列教程 双向多对多

    query.setParameterList("courseStudents", course.getStudents().stream().map(Student::getId).collect(Collectors.toList())); List&lt;Student&gt; result = query.list(); ``` 通过这个双向多对多关系的教程,你...

    hibernateTemplate批量删除数据

    query.setParameterList("ids", ids); return query.executeUpdate(); } }); } ``` 在这段代码中,我们定义了一个`bulkDelete`方法,接受一个`Object[]`类型的参数`ids`,代表待删除记录的ID集合。`queryString...

    hql基础语句

    query.setParameterList("ids", ids); ``` 这将返回id在列表中的所有实体。 ### 4. 传参方式 除了集合参数,HQL还有多种传参方式: - ** 占位符参数 **:`from EntityName e where e.property = ?1`,然后使用`...

    sql的封装,不需要使用StringBuffer进行字符串拼接

    query.setParameterList("ids", userIds); List&lt;User&gt; users = query.list(); ``` 而在MyBatis中,可以在XML配置文件中定义SQL: ```xml &lt;select id="selectUsersByIds" parameterType="java.util.List" ...

    Hibernate HQL详解.docx

    若要查询id在特定集合中的用户,可以使用`IN`操作符,如`FROM User where id IN (:ids)`,并使用`.setParameterList("ids", new Object[]{1,3,4})`传递数组。 9. **使用命名查询**: 命名查询将HQL语句写在`.hbm....

    HibernateDaoSupport二次封装组件,快速统计和查询,修改

    3. **修改操作**:对于更新,我们可以创建一个`updateByQuery`方法,接收HQL更新语句和参数,利用`createQuery().setParameterList()`设置参数,然后调用`executeUpdate()`执行更新。 4. **删除操作**:类似地,...

    Hibernate笔记

    .setParameterList("ids", new Object[]{1, 21, 31, 41, 51, 61, 71, 81, 91}) .list(); for (Iterator iter = list.iterator(); iter.hasNext();) { Student s = (Student) iter.next(); System.out.println(s...

    Hibrenate 学习摘记

    &lt;sql-query name="sqlQuery"&gt; select distinct p.* from E_ROLE_PROFILE_MAP map, E_PROFILES p, E_ROLE e where map.PROFILE_ID = p.ID and map.ROLE_ID = e.ID and e.ID in (:roleIdList) order by p.ID ...

    Hibernate 查询方式总结

    本文将详细介绍Hibernate中的几种常见查询方式,包括`get()`与`load()`的区别以及如何使用HQL(Hibernate Query Language)、Criteria API进行查询。 #### 1. `get()`与`load()`方法 `get()`和`load()`都是...

    Hibernate通用分页.docx

    这个方法用于设置HQL查询中的参数,它遍历Map,根据值的类型(Collection、Object[] 或单一对象)调用相应的`setParameter`或`setParameterList`方法。 - **`getcountHql(String hql)`** 这个方法用于构建统计...

    ssh框架的笔记

    Query接口用于执行HQL(Hibernate Query Language)查询,提供List、uniqueResult、setString、setParameterList等方法。 5. **POJO(Plain Old Java Object)** POJO是与Hibernate关联的Java对象,有瞬时态、...

    Hibernate学习笔记(2)

    HQL支持命名参数和位置参数,例如上面的例子展示了如何通过`createQuery()`创建HQL查询,并使用`setParameter()`或`setParameterList()`设置参数。`uniqueResult()`用于获取单个结果,`list()`则用于获取结果集。 3...

Global site tag (gtag.js) - Google Analytics