`
zhaobin87
  • 浏览: 77042 次
  • 来自: 深圳
社区版块
存档分类
最新评论

Hibernate的HQL中in参数设置

阅读更多

Hibernate的基础太薄弱了,以至于很多问题搞不懂。只能一步一步记录下来。

最常用的情况有2种:

   1、in后是个子查询,如 FROM A WHERE A.ID IN (SELECT B.AID FROM B WHERE ...),这样是没问题的,如果A.ID 和B.AID是相同的数据类型。

   2、in的参数如果已知了,可以直接拼接在后面 如FROM A WHERE A.ID IN (1,2,3,4...)。

   3、上面的情况下,通常(1,2,3,4...)都是作为参数传递过来的,可能是数组或者List。

    假设List<Integer> a;a里面已经有数据了,则HQL查询条件可以为:  

String hql="FROM A WHERE A.ID IN (:alist)";   
Query query = getSession().createQuery(hql);   
query.setParameterList("alist", a); 

 

另外,query.setParameterList中的第二个参数,还可以是数组类型,如int[] a,不要被方法名称迷惑。我也是最近刚学会的这种in参数设置。(转)

分享到:
评论

相关推荐

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

    Hibernate框架Hql语句in中带参数的写法 Hibernate框架中,在使用HQL语句时,需要传递参数,而在HQL语句中使用in关键字时,需要特别注意参数的传递方式。在本文中,我们将讨论如何在HQL语句中使用in关键字带参数的...

    Hibernate-HQL.rar_HQL_hibernate hql

    2. 子查询:可以在WHERE或HAVING子句中嵌套HQL查询,如“SELECT u FROM User u WHERE u.id IN (SELECT f.userId FROM Friend f WHERE f.friendId=100)”。 3. 动态HQL:通过Criteria API或Query接口,可以构建动态...

    Hibernate 课件_HQL

    - `setString(String paraName, String value)`:设置HQL中通过`:paraName`指定的参数值。 - **list()**:执行查询并返回查询结果列表。 - **executeUpdate()**:执行更新或删除操作。 #### Select子句 - **...

    Hibernate-HQL-查询-Query资料

    在Hibernate中,HQL(Hibernate Query Language)是专为ORM设计的一种面向对象的查询语言,它允许开发者以类和对象的方式进行数据查询,而不是直接使用SQL。本资料主要涵盖了Hibernate HQL查询的基本概念、语法以及...

    Hibernate 查询经典练习题

    在本文中,我们将探讨基于Hibernate的查询实践,包括HQL(Hibernate Query Language)和Criteria API的使用。我们将通过两个经典的练习题来深入理解这两个查询方式,并讨论它们在处理不同查询需求时的特点。 ### ...

    Hibernate 经常用的一些HQL语句

    ### HQL(Hibernate Query Language)在Hibernate中的应用 HQL是Hibernate框架提供的查询语言,它允许开发者以面向对象的方式进行数据库查询,使代码更具可读性和维护性。下面将详细介绍HQL在实际开发中常用的几种...

    Hibernate In Action(Java.Persistence.with.Hibernate)源码

    《Hibernate In Action(Java.Persistence.with.Hibernate)》是一本深入探讨Hibernate框架的书籍,源码则是作者为了配合书中理论部分而提供的实践示例。Hibernate是一个流行的开源对象关系映射(ORM)框架,它允许...

    NHibernate hql 可用函数,函数大全

    - **In 与 Exists 的区别**: `In` 主要用于比较单个值是否存在于列表中, 而 `Exists` 更侧重于判断某个子查询是否有结果返回, 性能上 `Exists` 通常更优。 ### 三、HQL 更新与删除操作 **1. 更新操作** - **语法*...

    hibernate的大部分的工具类

    总结来说,这个压缩包中的工具类覆盖了Hibernate的多个方面,包括初始化设置、数据验证、分页处理以及HQL查询的优化。它们是后端开发中的重要组成部分,特别是对于涉及持久层操作的项目,这些工具类将极大地增强代码...

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

    本篇文章将深入探讨HQL语句的学习及其在Hibernate中的应用。 首先,HQL语句的核心特性是它的面向对象性。与SQL不同,HQL直接操作对象和实体,这使得代码更易于理解和维护。例如,如果你想从数据库中获取所有User...

    hql语句大全

    HQL(Hibernate Query Language)是Hibernate框架中用于查询对象关系映射(ORM)的数据的语言,类似于SQL,但它是面向对象的。以下是对标题和描述中所提到的HQL语句的详细说明: 1. 实体查询: HQL的基本查询形式...

    hql基础语句

    HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的查询语言,它是SQL的面向对象版本,使得开发者可以更方便地在Java应用中进行数据库查询。本教程将深入讲解HQL的基础语句,包括ID...

    Spring--HQL-chaxun.zip_HQL

    在Spring框架中,Hibernate Query Language(HQL)是一种强大的工具,用于执行对象关系映射(ORM)查询。HQL是面向对象的查询语言,与SQL类似但更专注于处理Java对象而不是数据库表。在这个名为“Spring--HQL-chaxun...

    hibernate查询详细代码讲解

    上述代码中,`createQuery`方法接收HQL字符串,并返回一个Query对象,该对象可以进一步配置(如设置参数、排序等),最后调用`list`方法获取结果集。 HQL还支持聚合函数,如COUNT、SUM、AVG、MAX和MIN,可用于计算...

    优化Hibernate性能的几点建议

    在Hibernate配置文件中可以通过以下方式设置Fetch Size: ```xml &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.Oracle9Dialect &lt;prop key="hibernate.show_sql"&gt;false &lt;!-- 其他配置 --&gt; ...

    Hibernate(HQL).zip_Java编程_Java_

    标题"Hibernate(HQL).zip_Java编程_Java_"中,我们可以看出主要讨论的内容是关于Hibernate框架中的HQL(Hibernate Query Language)部分,这是一项用于操作Java数据库的强大工具。Java编程和Java标签进一步确认了...

    在Hibernate应用中处理批量更新和批量删除

    // 设置参数值 cstmt.executeUpdate(); tx.commit(); ``` **优势**:对于支持批处理的数据库如Oracle,此方法能充分利用其批处理能力,进一步提升性能。 ### 四、批量删除操作 批量删除操作与批量更新类似,...

    J2EE HQL语法大全

    1`,通过`Query.setXXX()`方法设置参数值,参数按顺序对应。 **六、HQL的优化** 1. **缓存利用**:利用Hibernate的第一级缓存和第二级缓存可以减少数据库访问。 2. **批处理**:通过批量操作,如`Query....

Global site tag (gtag.js) - Google Analytics