Iam在关闭会话后使用load方法加载学生对象iam尝试在hibernate 3.0中打印学生名。但是我得到 LazyInitializationException:无法初始化代理 - 拥有会话已关闭 .i提到了代码snipet
Session session=HibernateUtil.currentSession();
Transaction tx=session.beginTransaction();
Object o1=session.load(Student.class,new Integer(2));
tx.commit();
session.close();
log.info("Student name"+((Student)o1).getSname());
然后我添加了另一个属性lazy =“true”。但是抛出了同样的错误。如何解决这个问题。
答案 0 :(得分:1)
这是Session.load()
方法的原理:它向实体返回一个未初始化的代理(除非实体已经在会话中加载)。如果您需要初始化的Student实例,请使用Session.get()
。