首页 > 代码库 > 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()方法的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。