Welcome 微信登录

首页 / 操作系统 / Linux / Hibernate懒加载异常处理

一  懒加载概念懒加载,运行后没有立刻访问相应的数据库,返回的是代理对象,永远不可能为空,当第一次使用该对象的时候,才去访问二 异常的出现1.用查询的方法来测试public static User getUser(int id){       Session session = null;       try {           session = HibernateUtil.getSession();           Class clazz = User.class;//通过映射文件查找class对象           User user = (User) session.load(clazz, id);                       return user;       } finally {           // 使资源得到释放           if (session != null) {              session.close();           }       }    }2.在主方法中    public static void main(String[] args) {       //增       User user = new User();       user.setName("老王");       user.setBirthday(new Date());       addUser1(user);       System.out.println(user.getId());              //查       User user2 = getUser(user.getId());       System.out.println(user2.getId()+":"+user2.getName());    }3.异常Exception in thread "main" org.hibernate.LazyInitializationException: could not initialize proxy - no Session    at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:167)    at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:215)    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)    at com.hbsi.domain.User_$$_javassist_0.getName(User_$$_javassist_0.java)    at com.hbsi.test.TestHibernate.main(TestHibernate.java:30) 4.解决的办法出现异常的原因当在执行的时候,因为懒加载的原因,它并没有立刻访问数据库,当在main方法中访问的时候,已经插入完成,session已经关闭,所以会抛此异常。