- 在配置文件设置延迟加载
<!-- lazy:控制延迟加载,默认为true --> <class name="com.yao.hibernate.model.User" table="USER" lazy="true"> |
- Session的Get()方法没有延迟加载效果
@Test
public void queryGet(){
Session session = HibernateUtils.getSession();
Transaction tx = session.beginTransaction();
try {
//这儿会发出sql语句
User user = (User) session.get(User.class, 1);
System.out.println(user.getName());
tx.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
tx.rollback();
}
}
- Session的load()方法又延迟加载效果
@Test
public void queryLoad(){
Session session = HibernateUtils.getSession();
Transaction tx = session.beginTransaction();
try {
//这儿不会发出sql语句
User user = (User) session.load(User.class, 1);
//当获取对象属性时,发出sql语句
System.out.println(user.getName());
tx.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
tx.rollback();
}
}