参数绑定:
都支持位置绑定和命名绑定,
如:
session.createQuery("from Person where id=:id").setInteger("id",1);
session.createQuery("from Person where id=?").setInteger(0,1);
基本的参数绑定:
setString()
setInteger();
等...
特殊的参数绑定
(1)setEntity()
Customer customer = new Customer();
customer.setId(1);
session.createQuery("from Order o where o.customer =:customer ").setEntity("customer", customer);
等价于
session.createQuery("from Order o where o.customer.id =:customerid ").setInteger("customerid", 1);
(2)setParameter()
Query query = session.createQuery("from Order o where o.customer=:customer and o.orderNumber like :orderNumber");
query.setParameter("customer", customer, Hibernate.entity(Customer.class));
query.setParameter("orderNumber", orderNumber, Hibernate.STRING);
setParameter()方法的第三个参数显示指定Hibernate映射类型.以下代码用于绑定一个客户化映射类型.(关于客户化映射类型,参见:http://www.iteye.com/topic/182797)
Query query = session.createQuery("from Customer c where c.homeAddress=:homeAddress");
query.setParameter("homeAddress",homeAddress,Hibernate.custom(AddressUserType.class));
对于某些参数,Hibernate能跟根据参数值的Java类型推断出对应的映射类型,此时不需要在setParameter()方法中显式指定映射类型,如:
Query query = session.createQuery("from Order o where o.customer=:customer and o.orderNumber like :orderNumber");
query.setParameter("customer", customer);
query.setParameter("orderNumber", orderNumber);
对于日期类型,如java.util.Date类型,会对应多种Hibernate映射类型,如Hibernate.DATE或Hibernate.TIMESTAMP,因此必须在setParameter()方法中显式指定到底对应哪种Hibernate映射类型,如:
Query query = session.createQuery("from Customer c where c.birthday=:birthday");
query.setParameter("birthday",birthday,Hibernate.DATE);
(3)setProperties()方法:用于把命名参数与一个对象的属性值绑定,如:
Customer customer = new Customer();
customer.setName("Tom");
customer.setAge(21);
Query query = session.createQuery("from Customer as c where c.name=:name and c.age="age");
query.setProperties(customer);
setProperties()调用setParameter()方法,setParameter()方法再根据Customer对象的属性的Java类型来推断Hibernate映射类型.如果命名参数为日期类型,不能通过setProperties()方法来绑定.
参数绑定对null是安全的.
分享到:
相关推荐
绑定参数 11.4.1.5. 分页 11.4.1.6. 可滚动遍历(Scrollable iteration) 11.4.1.7. 外置命名查询(Externalizing named queries) 11.4.2. 过滤集合 11.4.3. 条件查询(Criteria queries) 11.4.4. 使用原生SQL的...
3)、参数绑定 4)、setParameter()方法,绑定任意类型的参数 5)、setProperties()方法,把命名参数与一个对象的属性值绑定 3. Hibernate基础配置 4. commons DBCP 配置说明 5. Hibernate的缓存机制介绍 6. ...
实体对象识别 PO与VO Hibernate持久化实现 数据加载方式 Ms-jdbc异常处理 参数绑定
3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...
3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...
3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...
17.1.12 在HQL查询语句中绑定参数 17.1.13 设置查询附属事项 17.1.14 在映射文件中定义命名查询语句 17.1.15 在HQL查询语句中调用函数 17.2 设定查询条件 17.2.1 比较运算 17.2.2 范围运算 17.2.3 ...
5.3.6 参数化定制类型 5.3.7 映射枚举 5.4 小结 第6章 映射集合和实体关联 6.1 值类型的set、bag、list和map 6.1.1 选择集合接口 6.1.2 映射set 6.1.3 映射标识符bag 6.1.4 映射...
帮助学生理解掌握使用Query接口的绑定参数的使用方式及其含义
绑定参数 10.4.1.5. 分页 10.4.1.6. 可滚动遍历(Scrollable iteration) 10.4.1.7. 外置命名查询(Externalizing named queries) 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 ...
绑定参数 10.4.1.5. 分页 10.4.1.6. 可滚动遍历(Scrollable iteration) 10.4.1.7. 外置命名查询(Externalizing named queries) 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 ...
3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...
绑定参数 10.4.1.5. 分页 10.4.1.6. 可滚动遍历(Scrollable iteration) 10.4.1.7. 外置命名查询(Externalizing named queries) 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的...
为了解决上面的痛点,将验证逻辑与相应的领域模型进行绑定是十分有必要的。为此产生了JSR 303 – Bean Validation 规范。Hibernate Validator 是 JSR-303 的参考实现,它提供了 JSR 303 规范中所有的约束...
Hibernate注释大全收藏 声明实体Bean @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId(Long id) { this.id = id; } } @Entity ...
3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...
绑定参数 11.4.1.5. 分页 11.4.1.6. 可滚动遍历(Scrollable iteration) 11.4.1.7. 外置命名查询(Externalizing named queries) 11.4.2. 过滤集合 11.4.3. 条件查询(Criteria queries) 11.4.4. 使用原生SQL的...
17.1.12 在HQL查询语句中绑定参数 17.1.13 设置查询附属事项 17.1.14 在映射文件中定义命名查询语句 17.1.15 在HQL查询语句中调用函数 17.2 设定查询条件 17.2.1 比较运算 17.2.2 范围运算 17.2.3 ...
17.1.12 在HQL查询语句中绑定参数 17.1.13 设置查询附属事项 17.1.14 在映射文件中定义命名查询语句 17.1.15 在HQL查询语句中调用函数 17.2 设定查询条件 17.2.1 比较运算 17.2.2 范围运算 17.2.3 ...