设为首页 加入收藏

TOP

Hibernate面试要点
2014-10-21 18:30:03 来源: 作者: 【 】 浏览:34
Tags:Hibernate 面试 要点

get和load的区别:
1>不存在对应记录时表现不一样
2>load返回的是代理对象(javassist.jar生成二进制码),等到真正用到对象的内容才会发出SQL语句
3>get直接从数据库加载,不会延迟
无论是get还是load,都会首先查找缓存(一级缓存),如果没有,才会去数据库查找,调用clear()方法,可以强制清除session缓存
调用flush()方法可以强制进行从内存到数据库的同步。
SessionFactory
1>用来管理Session
2>通常情况下每个应用只需要一个SessionFactory
3>除非要访问多个数据库的情况
4>关注两个方法即可
i>openSession每次都是新的,需要close();
ii>getCurrentSession从上下文找,如果有,用旧的,如果没有,创建新的
a>用途,界定事务边界
b>事务提交自动close;
c>current_session_context_class(jta或者thread)
thread使用connection
<一>list和iterate的区别:
a>list取出所有
b>iterate取出id,等要用的时候再根据id取出对象
c>session中的list第二次发出,仍然会倒数据库查询
d>iterate第二次,首先找session级缓存
getCurrentSession()一定要在事务中使用!!!
<二>缓存问题
i:一级缓存:
session级别的缓存


ii:二级缓存:
SessionFactory级别缓存,可以跨Session级别访问
什么对象应该放在二级缓存?
1>经常被访问
2>改动不大
3>数量有限
怎么使用二级缓存?
第一步:打开二级缓存。
第二步:在hibernate文件里面配置如下信息:<这是使用ehcache实现>



iii:查询缓存:
是指同样的,重复查询使用的缓存。
查询缓存依赖于二级缓存,所以,需要打开二级缓存。



<三>事务的并发处理(面试的意义更大)
并发出现的问题:
1>第一类丢失更新
2>脏读
3>不可重复读
4>幻读
设置Hibernate的设置级别:
1:read-uncommitted
2:read-uncommitted
4:repeatable-read
8:serializable
设置锁的隔离级别:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇东软软件测试笔试题 下一篇一道西班牙面试题 IQ智力

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: