久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Hibernate配置EhCache緩存之a(chǎn)nnotation注解

 KILLKISS 2010-04-16

ms注解是種流行,,越來(lái)越多的注解,,越來(lái)越多的零配置

1.  首先設(shè)置EhCache,建立配置文件ehcache.xml,,默認(rèn)的位置在class-path,可以放到你的src目錄下:

<xml version="1.0" encoding="UTF-8"?>   

<ehcache>   

 <diskStore path="java.io.tmpdir"/>     

  <defaultCache   

   maxElementsInMemory="10000"    

   eternal="false"    

   

   overflowToDisk="true"    

   

   timeToIdleSeconds="300"    

   timeToLiveSeconds="180"    

   diskPersistent="false"   

   diskExpiryThreadIntervalSeconds= "120"/>     

<ehcache>   

  2.  在Hibernate配置文件中設(shè)置:

<hibernate-configuration>

 

<session-factory>

<property name="hibernate.cache.provider_class">

     org.hibernate.cache.EhCacheProvider

</property>

<property name="cache.use_second_level_cache">

    true

</property>

</session-factory>

 

</hibernate-configuration> 

此外,,可以把cache.use_second_level_cache設(shè)置為false關(guān)閉所有的hibernate二級(jí)緩存,。但此屬性對(duì)指定<cache>的類缺省為true。

   3.  為了使用二級(jí)緩存,,需要在每一個(gè)Hibernate Entity上配置,。

@Entity   

@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)    

public class Forest { ... }   

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)    

@JoinColumn(name="CUST_ID")    

@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)    

public SortedSet getTickets() {    

    return tickets;    

}   

@Cache(    

    CacheConcurrencyStrategy usage();                 (1)    

    String region() default "";                       (2)    

    String include() default "all";                   (3)    

)   

(1) usage: 提供緩存對(duì)象的事務(wù)隔離機(jī)制,可選值有以下幾種

(NONE, READ_ONLY, NONSTRICT_READ_WRITE, READ_WRITE, TRANSACTIONAL)

 

ehcache不支持transactional,,其他三種可以支持,。

read-only:無(wú)需修改,, 那么就可以對(duì)其進(jìn)行只讀 緩存,注意,,在此策略下,,如果直接修改數(shù)據(jù)庫(kù),即使能夠看到前臺(tái)顯示效果,,

但是將對(duì)象修改至cache中會(huì)報(bào)error,,cache不會(huì)發(fā)生作用。另:刪除記錄會(huì)報(bào)錯(cuò),,因?yàn)椴荒茉趓ead-only模式的對(duì)象從cache中刪除,。

read-write:需要更新數(shù)據(jù),那么使用讀/寫緩存 比較合適,,前提:數(shù)據(jù)庫(kù)不可以為serializable transaction isolation level

(序列化事務(wù)隔離級(jí)別)

nonstrict-read-write:只偶爾需要更新數(shù)據(jù)(也就是說(shuō),,兩個(gè)事務(wù)同時(shí)更新同一記錄的情況很不常見(jiàn)),也不需要十分嚴(yán)格的事務(wù)隔離,,

那么比較適合使用非嚴(yán)格讀/寫緩存策略,。

 

 

(2) region (optional): 指定緩存的區(qū)域,默認(rèn)是類的全限定名,。利用緩存區(qū)域,,可以更精確的指定每個(gè)區(qū)域的緩存超前策略。

如果指定了緩存區(qū)域前綴(在hibernate.cfg.xml中設(shè)置cache.region_prefix屬性為一個(gè)字符串),,則所有的緩存區(qū)域名前將加上這個(gè)前綴,。

hbm文件查找cache方法名的策略

先查找ehcache.xml中的name的屬性值,如果有個(gè)類是com.yybean.Foo,,則使用ehcache.xml里面配置的name名為com.yybean.Foo的cache,,

like:

<cache name="com.yybean.Foo …

如果不存在與類名匹配的cache名稱,則用defaultCache,。

如果Foo包含set集合,,則需要另行指定其cache


(3) include (optional): all to include all properties, non-lazy to only include non lazy properties (default all).

 

調(diào)試時(shí)候使用log4j的log4j.logger.org.hibernate.cache=debug,更方便看到ehcache的操作過(guò)程,,主要用于調(diào)試過(guò)程,實(shí)際應(yīng)用發(fā)布時(shí)候,,請(qǐng)注釋掉,以免影響性能,。

 

http://hain./blog/153048

http:///blog/more.asp?name=lhwork&id=21210

http://ehcache./documentation/#mozTocId258426

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多