关于hibernate的立即检索和延迟检索,看下面的代码: public static SessionFactory sessionFactory; static{ try{ Configuration config = new Configuration(); config.addClass(EsAccounts.class); sessionFactory = config.configure().buildSessionFactory(); }catch(RuntimeException e){e.printStackTrace();throw e;} } Query query; Session session = sessionFactory.openSession(); 此时调用session 查询出来的结果集都是EsAccounts初始化时的结果集。 无论你再添加多少数据,都不会查出新的数据。 那是因为EsAccounts.hmb.xml默认 lazy 为true 也就是延迟检索。想要立即检索,只要设置lazy为false即可。
关于其中的优劣比较,目前正在探索。按照书上说的是立即检索会减低数据库的性能。 以下资料可能对处理一些lazy的错误有帮助,备留一下:http://shameant.javaeye.com/blog/553145
关于hibernate的立即检索和延迟检索
最新推荐文章于 2020-04-05 12:56:59 发布