hibernate中懒加载和急加载的区别,以及hibernate中get()方法和load()方法的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()方法的区别的主要内容,如果未能解决你的问题,请参考以下文章
hibernate中懒加载急加载的区别,get方法和load方的区别法