• 中国星空时尚网
当前位置: 中国星空时尚网 > 产经 > IT > Java面试题全集(2.1)(5)

Java面试题全集(2.1)(5)

http://www.xkssw.com 时间:2016-11-16 00:24来源:搜狐媒体

  129、Hibernate中Session的load和get方法的区别是什么?

  答:主要有以下三项区别:

  ① 如果没有找到符合条件的记录,get方法返回null,load方法抛出异常。

  ② get方法直接返回实体类对象,load方法返回实体类对象的代理。

  ③ 在Hibernate 3之前,get方法只在一级缓存中进行数据查找,如果没有找到

  对应的数据则越过二级缓存,直接发出SQL语句完成数据读取;load方法则可以从二级缓存中获取数据;从Hibernate 3开始,get方法不再是对二级缓存只写不读,它也是可以访问二级缓存的。

  说明:对于load()方法Hibernate认为该数据在数据库中一定存在可以放心的使用代理来实现延迟加载,如果没有数据就抛出异常,而通过get()方法获取的数据可以不存在。

【免责声明】本文仅代表作者个人观点,与中国星空时尚网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。您若对该稿件内容有任何疑问或质疑,请联系本网将迅速给您回应并做处理。