来自 118kjcom开奖现场直播 2019-10-19 13:24 的文章
当前位置: 118kj开奖现场 > 118kjcom开奖现场直播 > 正文

hibernate延迟加载org118kj开奖现场

public static void main(String[] args) {
 
  DeptEntity dept = getDept("402882e762ae888d0162ae888e420000");

  //dept.getEmp()得到子表的笔录集合
118kj开奖现场,  System.out.println(dept.getEmp());

}

private static DeptEntity getDept(String did){
  Session session = sessionFactory.openSession();
  DeptEntity dept = (DeptEntity)session.get(DeptEntity.class, did);
  session.close();
  return dept;
}

 

运营结果:

Exception in thread "main" org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.javakc.hibernate.onetomany.entity.DeptEntity.emp, could not initialize proxy - no Session
at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:566)
at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:186)
at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:545)
at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:124)
at org.hibernate.collection.internal.PersistentSet.toString(PersistentSet.java:326)
at java.lang.String.valueOf(String.java:2827)
at java.io.PrintStream.println(PrintStream.java:771)
at com.javakc.hibernate.onetomany.action.TestAction.main(TestAction.java:74)

 

集中延迟加载初叶化退步,不可能初步化二个代理。正是集聚在非一对一对象关系中,为了省去能源是暗许延迟加载,而get方法又是非延迟加载,所以在施行完三遍数据库查询后就举行session.close();关闭了session,而聚积是延迟加载,在利用集合时再加载,此时session已经停业,所以得不到代办。化解方式:能够在主表的hbm配置文件中,在<set>标签里安装lazy="false",集合就不延迟加载了,由此在实行get方法时,集结也获得到了,就不会并发延迟加载难题了。

本文由118kj开奖现场发布于118kjcom开奖现场直播,转载请注明出处:hibernate延迟加载org118kj开奖现场

关键词: