Hibernate中session.get方法是不支持懒加载的,但是进行如下的配置得到的结果却
和预期不一样,没找到原因呢,谁能解释一下。
** 1.定义Customer类**
public class Customer implements java.io.Serializable {
//Customer中有一个orders集合
private Set orders=new HashSet();
2. 在Customer.hbm.xml中作如下配置
3.运行如下的程序
Session session=HibernateSessionFactory.getSession();
Customer cs=(Customer)session.get(Customer.class,"c001");
System.out.println(cs.getName());
System.out.println("------------------");
System.out.println(cs.getOrders());
**4.按照原理分析这里的get方式不支持懒加载,后台应该连着输出两条SQL语句,但实际情况如下:**
Hibernate: select customer0_.id as id1_0_, customer0_.name as name1_0_, customer0_.age as age1_0_, customer0_.sex as sex1_0_, customer0_.city as city1_0_ from simple.customer customer0_ where customer0_.id=?
张宇
Hibernate: select orders0_.cid as cid1_, orders0_.orderid as orderid1_, orders0_.ord
也就是说执行get时只输出了第一条语句,而执行cs.getOrders()时又执行了第二条SQL,这不就是懒加载么,谁能谈谈是再怎么回事?