什么是hibernate中的二级缓存
第一级别的缓存是Session级别的缓存,是属于事务范围的缓存,由Hibernate管理,一般无需进行干预。第二级别的缓存是SessionFactory级别的缓存,是属于进程范围的缓存。
二级缓存也分为了两种
内置缓存:Hibernate自带的,不可卸载,通常在Hibernate的初始化阶段,Hibernate会把映射元数据和预定义的SQL语句放置到SessionFactory的缓存中。该内置缓存是只读的。-hibernate
外置缓存:通常说的二级缓存也就是外置缓存,在默认情况下SessionFactory不会启用这个缓存插件,外置缓存中的数据是数据库数据的复制,外置缓存的物理介质可以是内存或者硬盘。
hibernate二级缓存的结构
2.并发访问策略
transactional
(事务型)
仅在受管理的环境中适用
提供Repeatable Read事务隔离级别
适用经常被读,很少修改的数据
可以防止脏读和不可重复读的并发问题
缓存支持事务,发生异常的时候,缓存也能够回滚
read-write
(读写型)
提供Read Committed事务隔离级别
在非集群的环境中适用
适用经常被读,很少修改的数据
可以防止脏读
更新缓存的时候会锁定缓存中的数据
nonstrict-read-write
(非严格读写型)
适用极少被修改,偶尔允许脏读的数据(两个事务同时修改数据的情况很少见)
不保证缓存和数据库中数据的一致性
为缓存数据设置很短的过期时间,从而尽量避免脏读
不锁定缓存中的数据
read-only
(只读型)
适用从来不会被修改的数据(如参考数据)
在此模式下,如果对数据进行更新操作,会有异常
事务隔离级别低,并发性能高
在集群环境中也能完美运作
分析:通过上述表格分析如下
适合放入二级缓存中数据
很少被修改
不是很重要的数据,允许出现偶尔的并发问题
不适合放入二级缓存中的数据
经常被修改
财务数据,绝对不允许出现并发问题
与其他应用数据共享的数据
请问late,lately,later,latest在用法上各有什么区别.
late作为形容词一般是放在名词前面的,例如late come;同时它也可作为副词放在句子结尾,比如Sorry,I am late.
lately是副词,通常放在一句话末尾;John come lately.
later意为稍晚,作为副词放在句尾,像I will call you later.也可作为形容词比较级来用,You’re later than him.
latest意为最近的,只做形容词用.如Do you have the latest news?
lately 和latest意思比较接近,都是最近.但是lately只用作副词,均放在句尾;而latest只用做形容词,修饰名词放在名词前面.
至于late和later,可能比较容易弄混.它们都可以作为形容词和副词用.不过在做形容词是,later是作为比较级来用的;做副词时,两个词意思稍有不同.late是很晚,迟到之类的意思,later是稍后,过一会的意思.
不知道这样解释够清楚不
-ate
migrate 和 immigrate 区别
一、意思不同
migrate:
1、vi. 移动;随季节而移居;移往
2、vt. 使移居;使移植
immigrate:
1、vi. 移入
2、vt. 使移居入境
二、用法不同
1、migrate:侧重于表达从一处到另一处的意思。
例句:Planets between an Earth mass to Uranus mass migrate so fast that they
should be engulfed by the central star.
译文:质量在一个地球到一个海王星之间的行星迁移速度会很快,以至于他们会被中央星吞噬。
2、immigrate:侧重于强调“到达”这个动作。
例句:This is why I object the plan. I want to know when you will immigrate to
Canada.
译文:这就是我反对计划的原因。我想知道的是你们什么时候移民到加拿大。
扩展资料
“migrate”的近义词:emigrate
读音:英 [’emɪgreɪt] 美 [’ɛmɪɡret]
意思是:
1、vi. 移居;移居外国
2、vt. 移民
例句:Many people had to emigrate during the Nazi period.
译文:在纳粹党期间许多人不得不移民。