1。hibernate一級緩存為session維護(hù)的。二級緩存為sessionfactory維護(hù)。
2。一級緩存持久化的是OID唯一的對象,所以不會(huì)存在并發(fā)訪問的問題。二級緩存存在并發(fā)訪問問題。所以二級緩存根據(jù)訪問和修改的頻率以及是否集群分為4個(gè)等級。總體上說,一級緩存保存在內(nèi)存中,二級可以保存在內(nèi)存或硬盤中,為散列保存。
3。一級緩存為必須的,二級為可插入的緩存,其功能為第三方提供。
4。二級緩存保存的為很少修改的對象,因?yàn)闀?huì)存在并發(fā)訪問問題,所以盡量減少對兌現(xiàn)的修改操作,減少寫入的臟數(shù)據(jù)。
5。一級緩存為session全程存在,二級緩存可以設(shè)定過期時(shí)間。
6。需要在hibernate.cfg.xml中設(shè)定使用二級緩存。還需要在指定的映射文件中,設(shè)定需要被緩存的實(shí)體對象。
7。假如映射文件對象所對應(yīng)的屬性為set類型,還需要再次指明被緩存,這樣只會(huì)使set類型的屬性也就是getItems()取出的被緩存。而其所對應(yīng)的實(shí)體并未被緩存,如需要,需要在xml中指明。
2。一級緩存持久化的是OID唯一的對象,所以不會(huì)存在并發(fā)訪問的問題。二級緩存存在并發(fā)訪問問題。所以二級緩存根據(jù)訪問和修改的頻率以及是否集群分為4個(gè)等級。總體上說,一級緩存保存在內(nèi)存中,二級可以保存在內(nèi)存或硬盤中,為散列保存。
3。一級緩存為必須的,二級為可插入的緩存,其功能為第三方提供。
4。二級緩存保存的為很少修改的對象,因?yàn)闀?huì)存在并發(fā)訪問問題,所以盡量減少對兌現(xiàn)的修改操作,減少寫入的臟數(shù)據(jù)。
5。一級緩存為session全程存在,二級緩存可以設(shè)定過期時(shí)間。
6。需要在hibernate.cfg.xml中設(shè)定使用二級緩存。還需要在指定的映射文件中,設(shè)定需要被緩存的實(shí)體對象。
7。假如映射文件對象所對應(yīng)的屬性為set類型,還需要再次指明被緩存,這樣只會(huì)使set類型的屬性也就是getItems()取出的被緩存。而其所對應(yīng)的實(shí)體并未被緩存,如需要,需要在xml中指明。