今天是需要过滤查询保单号,使用了 List 作为过滤条件,如下:
HQL: where id.publicPolicyId in(?)
java: query.setParameter(0, (ArrayList类型)tmpList);
但是总报错误,
Can not bind to Type java.util.ArrayList
问同事,原来更改条件设置方法:
query.setParameterList("plist", tmpList);
查询成功。
代码如下:
String hql = "select publicPolicyId from TMuster where musterDate >= ? and publicPolicyId between ? and ? ";
Query query = session.createQuery(hql);
query.setParameter(0, DateUtil.toDate("2010-01-01"));
query.setParameter(1, policyIdStart);
query.setParameter(2, policyIdEnd);
List tmpList = query.list();
if(tmpList == null){return null;}
// 过滤查询 TPolicyInsurantTemporary 非空条件
hql = "select id.publicPolicyId from TPolicyInsurantTemporary where id.publicPolicyId in(:plist) and name <> '' and cert <> '' and cerc <> '' ";
query = session.createQuery(hql);
query.setParameterList("plist", tmpList);
tmpList = query.list();
if(tmpList == null){return null;}
// 过滤查询 PublicPolicyTemporary 非空条件
hql = "from TPublicPolicyTemporary where publicPolicyId in(:plist) and applyName <> '' and applyCert <> '' and applyCerc <> '' and billNo <> '' ";
query = session.createQuery(hql);
query.setParameterList("plist", tmpList);
tmpList = query.list();
if(tmpList == null){return null;}
rstList = this.TPublicPolicyTrVO(tmpList);
分享到:
相关推荐
【标题】:深入理解Hibernate的查询机制:HQL查询 【描述】:在ORM框架Hibernate中,数据查询和检索是一个核心功能,它提供了多种查询方式,包括标准化对象查询(Criteria Query)、Hibernate查询语言(HQL)和原生...
注意,执行`from Student, Course`这样的HQL会返回两个对象的笛卡尔积,而非简单的联合查询,通常在实际应用中很少使用。 3. 属性查询: HQL支持查询单个或多个属性。例如,查询所有学生的姓名和年龄: ```java // ...
- 使用HQL模糊查询时,注意防止SQL注入,确保传入的参数是安全的。 - 大量的模糊查询可能导致性能问题,应合理设计索引并优化查询。 - 在处理大量数据时,考虑分页查询以提高效率。 综上所述,Hibernate的HQL模糊...
2. **条件查询**:HQL支持WHERE子句,可以进行条件查询。如查找名字为"John"的用户: ```java hql = "from User where name='John'"; users = session.createQuery(hql).list(); ``` 3. **排序与分页**:使用`ORDER...
这里使用了HQL(Hibernate Query Language)来执行查询。例如,在`getProductsMenuSub`方法中,通过以下HQL语句实现了连表查询: ```java String queryString = "select a.productsName from TopProducts as a, ...
在Hibernate中,通过Session对象的createQuery或createSQLQuery方法创建HQL查询,然后调用list、uniqueResult、scroll等方法执行查询。执行过程中,Hibernate会自动进行类型转换和结果集的封装,极大地降低了开发...
HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得开发人员能够更加专注于业务逻辑而不用深入到SQL层面。HQL支持各种复杂的查询,...
条件查询 如果想要查询书名中包含 “c#” 的所有书籍,可以使用如下 HQL 语句: ```java String hql = "select b.title, b.price from Books b where b.title like '%c#%'"; Query query = session.createQuery...
与传统的SQL语言不同,HQL更加注重于面向对象的特性,它支持Java类名和属性名作为查询条件,使得开发者可以直接使用Java对象模型来编写查询语句,而不需要了解底层数据库的具体表结构。HQL的这种特性大大提高了代码...
在这里,`orderIdsList`是一个包含我们要查询的订单ID的List,通过`setParameterList`方法,我们可以将这个List作为查询条件传递给HQL,然后得到匹配条件的用户列表。 除了HQL,Criteria API也是Hibernate提供的另...
在这种情况下,我们需要使用 Hibernate 的 HQL 语言来编写查询语句,以便检索和操作数据。 在这个例子中,我们有三个实体类:Menu、Privilege 和中间表 menu_privilege。Menu 实体类中有一个 privileges 列表字段,...
### Hibernate 课件_HQL 知识点解析 #### HQL查询 ...这些知识点涵盖了HQL的基本概念、查询方法、各种高级查询技巧以及Session的管理等方面,希望能够帮助大家更好地理解和掌握Hibernate的HQL查询技术。
HQL支持多种条件查询,包括等于、不等于、大于、小于等操作符。如查询所有年龄大于20岁的用户: ```java String hql = "from User where age > 20"; ``` 同时,HQL还支持like、in、between等特殊查询条件。 三、HQL...
无论是基本的全表扫描还是复杂的条件查询,HQL都能够提供一种面向对象的解决方案,从而提高开发效率和代码可读性。 #### 扩展阅读 为了更深入地学习Hibernate和HQL,建议阅读以下资源: - Hibernate官方文档:...
### Hibernate HQL 查询详解 #### 一、HQL 概述 Hibernate 提供了一种非常强大的查询语言——HQL(Hibernate Query Language),它在语法上与 SQL 类似但功能更为强大,因为它支持面向对象的特性,例如继承、多态性...
本教程将深入探讨Hibernate中的两种查询方式:HQL(Hibernate Query Language)和QBC(Query By Example)。通过实例开发,我们将了解这两种查询方法的使用和它们之间的差异。 首先,HQL是Hibernate专门设计的一种...
使用Hibernate和HQL进行开发时,有以下几点需要注意: 1. **配置**:必须在Hibernate配置文件(通常是hibernate.cfg.xml)中指定数据库连接参数,包括URL、用户名、密码等。 2. **映射文件**:每个Java实体类都需要...
HQL允许在查询语句中嵌套查询,这对于复杂条件的筛选非常有用。如找出年龄大于所有用户平均年龄的用户: ```sql SELECT u FROM User u WHERE u.age > (SELECT AVG(age) FROM User) ``` 6. **参数绑定** HQL...