搞不清的Hibernate检索策略

搞不清的Hibernate检索策略
batch fetch inverse cascade outer-join lazy x-to-x load() get() find() 类级别 关联级别
都是
  < many - to - one name = " parent "   class = " po.Parent "  fetch = " select " >
            
< column name = " parentId "  not - null = " true "   />
        
</ many - to - one >
核心测试代码:
public   static   void  querytest(Session session) {
        session.beginTransaction();
        Query query 
= session.createQuery("from Parent");
        List list 
= query.list();
        List
<Parent> parents = list;
        session.close();
        
for(Parent parent:parents){
            Set
<Child> childs = parent.getChilds();
                
for(Child child:childs){
                System.out.println(child.getName());
            }

        }

    }
lazy属性功能测试:
将parent.hbm.xml文件的lazy改为true,启动延迟加载,在执行query.list的时候并没有查询其关联对象,parent对象中并没有包含child数据,所以当调用child.getNmae()时会抛出异常。若lazy="false"或没有此属性,查询parent对象时也将同时执行select child.....,这时能轻松从parent对象获取起关联的childs。

你可能感兴趣的:(搞不清的Hibernate检索策略)