精华帖 (0) :: 良好帖 (8) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-08
楼主现在在哪家公司啊?
|
|
返回顶楼 | |
发表时间:2011-04-08
yanwt 写道 楼主现在在哪家公司啊?
私下和你说。 ![]() |
|
返回顶楼 | |
发表时间:2011-04-09
最后修改:2011-04-09
感觉Hibernate二级缓存用在一个生产系统,特别是有现金流或者物品交换的系统中,可能会带来隐藏问题。
曾经解决过因误用一个问题:
在使用时需要特别小心。 |
|
返回顶楼 | |
发表时间:2011-04-10
skzr.org 写道 感觉Hibernate二级缓存用在一个生产系统,特别是有现金流或者物品交换的系统中,可能会带来隐藏问题。
现实中,生产环境中还是存在直接使用jdbc,这个就导致一些针对hibernate管理的数据缓存策略和内部数据锁机制失效。 说的好! 引用 数据缓存策略失效 我的理解是因为和jdbc在同一个事务,连接未关闭,未保存到数据库中??为了让jdbc查到数据,必须手动flush session
引用 内部数据锁机制失效 这个不了解了
引用 但对数据要求不严格的时候,还是会使用他——比如给外部做查询服务,结果只是看看,不做业务数据的。
什么叫做对数据要求不严格的时候呢?? 什么叫做不做业务数据的?? 请赐教 |
|
返回顶楼 | |
发表时间:2011-04-10
最后修改:2011-04-10
引用 数据缓存策略失效
org的意思应该是另外的非hibernate管理的JDBC对数据库进行了增删改查的东西。导致缓存失效。 引用 内部数据锁机制失效
这个要org来回答 引用 引用 但对数据要求不严格的时候,还是会使用他——比如给外部做查询服务,结果只是看看,不做业务数据的。
什么叫做对数据要求不严格的时候呢?? 什么叫做不做业务数据的?? org的意思是只是查查看,数据准确性要求不高。比方说一个统计功能,缓存里可能有3000个量,但实际数据库有3050个。不过也无所谓,大概对就行。 |
|
返回顶楼 | |
发表时间:2011-04-11
个人猜想ReadOnly=true,也就是不让Spring的事务管理为Connection调用Commit或Rollback而已,或者将IsReadOnly=true,不过Connection的AutoCommit=true了,设置了ReadOnly=true估计也不能提交。
|
|
返回顶楼 | |
发表时间:2011-04-12
@Transactional 灵活性更好,以前都是xml配置,发现对不同的情况要设置各种各样的切点和策略,麻烦死了,而且别人看起来也是晕晕的。
|
|
返回顶楼 | |
发表时间:2011-12-28
LZ这A-C装得有点大了!这readOnly的作用还真和isolation以及二级缓存之类的一点关系都没有!其实只要使用readOnly就知道他有啥效果,如果你在一个方法执行update之类的语句并配置了readOnly为ture,你会惊奇地发现update语句没效果!
如果您使用hibernateTransactionManager的话,设置了readOnly会将session的flushMode设置manual,然后commit事务的时候,会判断如果flushModel不是manual,则执行session的manageFlush,这时才将update等操作真正执行!其实这点开销也不太大 |
|
返回顶楼 | |
发表时间:2011-12-31
rocketball 写道 我有一个不理解的地方,如果设置了ReadOnly=true,那还是什么设置事物的必要,不是增加额外的开销麽
如果设置了readOnly=true,还必须设置propagation=Propagation.SUPPORTS。否则readOnly=true是不起作用的。 看这里,一清二楚。 http://osacar.iteye.com/admin/blogs/1331170 |
|
返回顶楼 | |