`
esffor
  • 浏览: 1367830 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate中HQL占位符的一点使用技巧

阅读更多

大家都知道在HQL中可以使用?或者:***的方式在外部配置查询参数,如:

Query query=session.createQuery("from TestStu s where s.team=:team and s.age>:age"); 或者

Query query=session.createQuery("from TestStu s where s.team=? and s.age>?);

这句话的意思是从一个持久的team对象中,取出其持有的TestStu集合,并筛选出age大于执行数据的记录

我们可以这样设置参数
query.setParameter("team",team,Hibernate.entity(TestTeam.class));
 //或者使用query.setEntity("team",team);
query.setParameter("age", 15);

 

但我们决不能在HQL中又出现?,又出现变量占位符,即

Query query=session.createQuery("from TestStu s where s.team=? and s.age>:age);

这样,在设置参数时候,会出现异常如下:

 cannot define positional parameter after any named parameters have been defined [from Search.filter.TestStu s where s.team=:team and s.age>?] 

 

分享到:
评论

相关推荐

    经典hibernate教程-HQL语句

    HQL的全称是? 和SQL相比,HQL有哪些特点? HQL语句为:select jd.jdid,jd.jd from TblJd jd。怎样获得并显示查询结果...'做占位符的参数查询,怎样设置参数的值? 命名参数查询的语法是? 怎样创建Criteria查询对象?

    SQL语句填充占位符

    MyBatis允许在XML映射文件或注解中使用#{param}作为占位符,Hibernate则支持HQL(Hibernate Query Language)和Criteria API,它们都提供了更强大的动态查询能力。 例如,在MyBatis中,你可以这样写: ```xml ...

    hibernate 中HQL语句查询学习笔记

    这里的`:dept`是一个参数占位符。 ##### 在映射文件配置HQL语句 可以在Hibernate的映射文件中定义HQL查询: ```xml SELECT s FROM Student s WHERE s.sdept = :dept ``` 这样可以直接在代码中引用这些预定义...

    Hibernate 课件_HQL

    - **setXXX()**:用于设置HQL中的占位符(`?` 或变量名)的值。 - `setString(int position, String value)`:设置HQL中按位置顺序出现的`?`的值。 - `setString(String paraName, String value)`:设置HQL中通过...

    占位符查询

    在Java开发中,尤其是在使用Hibernate框架进行数据库操作时,为了提高代码的可读性和维护性,通常会采用占位符来构建动态SQL语句。本篇文章将围绕“占位符查询”这一主题,通过具体的例子来详细介绍如何使用...

    Hibernate-HQL-查询-Query资料

    - HQL支持在SELECT、FROM、WHERE子句中使用子查询。 - 子查询可以返回单个值,也可以返回对象列表。 8. **参数化查询** - 使用问号(?)作为占位符,防止SQL注入攻击。 - 可以使用Query接口的setParameter()...

    Hibernate各种查询:联表查询 分页查询 位置参数查询(?) 占位符查询(冒号查询) 统计查询

    本篇文章将详细解析Hibernate中的几种主要查询方式,包括联表查询、分页查询、位置参数查询、占位符查询(冒号查询)以及统计查询,这些都是在实际开发中非常常见的需求。 首先,我们来看**联表查询**。在Hibernate...

    Hibernate HQL详解.docx

    占位符在HQL中用于动态参数,例如`FROM User where id=?`。Hibernate的占位符从0开始,如`.setParameter(0, 2)`,与JDBC中的从1开始不同。 7. **使用参数**: 参数化查询可以提高安全性,如`FROM User where id=:...

    hibernate hql各类查询范例

    )** 代表占位符,用于传入实际的参数值。 - **hibernateOperations.find()** 方法用于执行 HQL 查询并返回结果列表。 ### 3. 使用 DetachedCriteria 进行复杂查询 第三个示例中,使用了 `DetachedCriteria` 类来...

    hibernate hql大全

    `或`:paramName`作为参数占位符,防止SQL注入,例如: ```java String query = "from Employee e where e.name = :name"; Query q = session.createQuery(query); q.setParameter("name", "John"); ``` 以上内容...

    Hibernate HQL命名参数和Query接口的分页

    如果实体类的字段名与SQL的关键字冲突,例如字段名为`order`,我们可以在映射文件或注解中使用`@Column(name = "your_column_name")`指定数据库中的实际列名。例如: ```java @Entity public class Order { @...

    HQL学习教程Hibernate入門

    `作为参数占位符,避免SQL注入,如`from Employee where salary > ?`,然后在执行时传入参数值。 **Java时间日期方法大全讲解** 在Java中,处理日期和时间主要涉及`java.util.Date`, `java.sql.Date`, `java.time`...

    HQL的具体内容和使用

    Hibernate Query Language(HQL)是Hibernate框架中专用于对象关系映射(ORM)的查询语言,它使得开发者能够以面向对象的方式来查询数据库,而无需直接编写SQL语句。HQL支持多种查询方式,包括对象查询、属性查询、...

    hql语句 使用大全

    使用问号作为占位符设置参数值: ```java String hql = "from com.mypack.User4 u where u.name = ?"; Query query = session.createQuery(hql); query.setString(0, "张三"); List<User4> users = query.list(); ``...

    hibernateのHQL

    占位符 使用hql的几种返回类型: a.返回对象 from 类名 b.返回String 查询单个属性 c.object [] 查询两个及两个以上的属性 d.Map 利用了Map函数,查询两个及两个以上的类属性 d.返回对象 利用了构造函数的形式(Dto...

    Hibernate调用配置文件中的sql语句

    在传统的Hibernate应用中,我们通常使用HQL(Hibernate Query Language)或者Criteria API来执行查询。然而,有时候我们可能需要执行更复杂的自定义SQL,这时就需要在配置文件中引入SQL语句。以下是一些关键步骤: ...

    Hibernate 经常用的一些HQL语句

    ` 使用问号作为占位符,然后通过`setString`方法传入具体值。 - **命名参数**:`String hql = "from User where userLoginName=:x and userPassword=:y";` 使用冒号加参数名的方式来绑定参数,之后通过`setString`...

    Spring中hql语句的常用方法

    ### Spring框架中HQL语句的使用方法 在学习Spring框架与...以上就是在Spring框架中使用HQL进行数据查询的主要方法。通过这些方法,开发者可以根据不同的需求选择合适的查询方式,从而更加高效地完成数据处理任务。

    hibernate所用到HQL经典语句大全

    - `:createDate`是一个占位符,用于接收外部传入的参数。 **2.2 HQL支持的运算符** - **数学运算符**:+、-、*、/ - **比较操作符**:=、!=、<、、>、>=、LIKE - **逻辑运算符**:AND、OR、NOT - **SQL操作符**:IN...

Global site tag (gtag.js) - Google Analytics