首页 > 代码库 > hibernate中懒加载和急加载的区别,以及hibernate中get()方法和load()方法的区别

hibernate中懒加载和急加载的区别,以及hibernate中get()方法和load()方法的区别



    * 懒加载在加载一个实体的时候,不会马上从数据库中加载,即从数据库中加载到内存。而急加载在加载一个实体时,会立即从数据库中查询,与其关联的类也会被同时查询。

急加载就会很快,因为在第一次加载的时候,已经帮我们全部加载好了。而懒加载则会相对慢一些,因为在我门需要查询的时候,它才会执行sql操作。

所以懒加载的优点是占用内存小,执行速度慢;急加载是执行速度快,占用内存高

          hibernate的get()he load()方法在执行的时候又很大的区别,

执行get()方法会把所有的基本数据全部加载,

而load()方法在懒加载中只会加载ID属性,所有的ID属性,其他的非ID属性的操作都不会执行,当我们需要查询默写具体的数据是才会真的执行sql操作,因为懒加载的有效期是在一个session中,所以今天我们在关闭了session的情况下会报错,因为Hibernate尝试通过当前session发sql查询,但发现session已经关闭,这样就会发出no session的异常 。

我们可以吧加载方式变成急加载或者不关闭session。

 



hibernate中懒加载和急加载的区别,以及hibernate中get()方法和load()方法的区别