hibernate面试题汇总V1(3)
时间:2025-03-11
时间:2025-03-11
hibernate面试题汇总V1
(1)减少访问数据库的频率。应用程序从内存中读取持久化对象的速度显然比到数据库中查询数据的速度快多了,因此Session的缓存可以提高数据访问的性能。
(2)保证缓存中的对象与数据库中的相关记录保持同步。当缓存中持久化对象的状态发生了变换,Session并不会立即执行相关的SQL语句,这使得Session能够把几条相关的SQL语句合并为一条SQL语句,以便减少访问数据库的次数,从而提高应用程序的性能。
4、Hibernate对象的生命周期
5、Get和Load的区别
6、Hibernate的查询方式
①导航对象图检索 ②OID检索 ③HQL检索 ④QBC检索 ⑤本地SQL检索
7、如何优化Hibernate?
使用双向一对多关联,不使用单向一对多
灵活使用单向一对多关联
不用一对一,用多对一取代
配置对象缓存,不使用集合缓存
一对多集合使用Bag,多对多集合使用Set
继承类使用显式多态
表字段要少,表关联不要怕多,有二级缓存撑腰
8、hibernate常用的主键生成方式及描述
9、Hibernate中的update()和saveOrUpdate()的区别
saveOrUpdate()方法可以实现update()的功能,但会多些步骤,具体如下:
如果对象在该session中已经被持久化,不进行操作;
对象的标识符属性(identifier property)在数据库中不存在或者是个暂时的值,调用save()方法保存它;
如果session中的另一个对象有相同的标识符抛出一个异常;
以上皆不符合则调用update()更新之。
10、三种检索策略是什么,分别适用于哪种场合?
立即检索——
优点:对应用程序完全透明,缺点:select语句数目多。适用:类级别。
延迟检索——
优点:由应用程序决定加载哪些对象,可以避免执行多余的select语句以及避免加载不需要访问的对象,节省内存空间,提高检索效率。
缺点: 应用程序如果要访问游离态的代理类实例,必须保证它在持久化时已经被初始化。
适用: 一对多或多对多关联。应用程序不需要立即访问或者根本不会访问的对象。 迫切左外连接检索一一:
优点:对应用程序完全透明,不管对象处于持久化状态还是游离状态,应用程序都可以方便的从一个对象导航到另一个与它相关联的对象。使用了外连接,select语句数目少。 缺点:可能会加载程序不许要访问的对象。复杂的数据库表连接形象检索性能。
适用:一对一或多对一关联。应用程序需要立即访问的对象。数据库系统具有良好的表连接性能
11、映射继承关系的三种方式?
(1)继承关系树的每个具体类对应一张表:在具体类对应的表中,不仅包含和具体类属性对应的字段,还包括与具体类的父类属性对应的字段。
(2)继承关系树的根类对应一张表:在根类对应的表中,不仅包括根类属性对应的字
上一篇:苯佐卡因的制备(综合实验报告)