请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 241|回复: 0

Java EE面试题集10(Hibernate部分)——轻量级Java EE企业应用

[复制链接]
发表于 2018-3-11 15:09:24 | 显示全部楼层 |阅读模式
本帖最后由 kongyeeku 于 2018-5-2 20:04 编辑

本文档来自《轻量级Java EE企业应用实战(第5版)》光盘
京东购买地址:https://item.jd.com/12327466.html
当当购买地址:http://product.dangdang.com/25245286.html


46、可不可以将Hibernate的实体类定义为final类?
可以将Hibernate的实体类定义为final类,但这种做法并不好。
因为Hibernate的延迟加载都是基于代理模式来实现的,Hibernate使用Javassist工具来为实体类生成代理,这些代理类是实体类的子类。
如果你把实体类定义成final类,由于Java不允许对final类派生子类,所以Hibernate就无法为实体类创建代理,这样就没办法使用延迟加载了,Hibernate就没办法利用延迟加载来提升性能了。
47、介绍下使用Hibernate操作数据库的基本步骤?
Hibernate持久化操作的核心API是Configuration、SessionFactory、Session、Transaction、Query、CriteriaQuery等。使用Hibernate执行持久化操作的步骤如下。
1. 创建Configuration对象,它负责读取并解析配置文件
2. 调用Configuration创建SessionFactory,该方法会负责读取并解析映射信息
3. 调用SessionFactory打开Sesssion
4. 开启Transation
5. 持久化操作,CRUD操作分别对应save/persist,load/get,update,delete方法;如果要执行HQL查询则需要创建Query对象;如果要执行动态条件查询,则需要创建CriteriaQuery对象。
6. 提交事务
7. 关闭Session
8. 关闭SesstionFactory


您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2018-9-26 10:40 , Processed in 0.155989 second(s), 6 queries , File On.

快速回复 返回顶部 返回列表