Hibernate高级-笔记02-1-N关联检索策略
目录
- 关联策略简介
- 立即加载和延迟加载
- 批量检索
- 预先抓取
0. 关联策略简介
Hibernate中的关联检索方式有以下三种:
- 立即加载
- 延迟加载
- 预先抓取
以Customer类和Order类为例
Customer类
public class Customer implements Serializable {
/**
* 测试1-N检索策略
*/
private int id;
private String username;
private String password;
private String address;
//一对多
private Set<Order> orders = new HashSet<Order>(0);
public Customer() {
}
public Customer(String username, String password, String address) {
this.username = username;
this.password = password;
this.address = address;
}
//···
//为节省篇幅,省略getter/setter方法
//···
}
Order类
public class Order {
/**
* 测试1-N检索策略
*/
private int id;
private int orderNo;
private Date date;
//多对一
private Customer customer;
public Order() {
}
public Order(int orderNo, Date date, Customer customer) {
this.orderNo = orderNo;
this.date = date;
this.customer = customer;
}
//···
//为节省篇幅,省略getter/setter方法
//···
}
Customer.hbm.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.chapter07.pojo.Customer" table="t_customer" lazy="true" schema="course_s2sh">
<id name="id">
<column name="id" sql-type="int(11)"/>
</id>
<property name="username">
<column name="username" sql-type="varchar(20)"