二次キャッシュを休止。高い同時実行

sessesionFactory設定

<プロパティ名= "hibernateProperties">  
            <小道具>
                真</小道具>に<小道具キー= "hibernate.show_sql">
                <小道具キー= "hibernate.format_sql"> trueに</小道具>   
                <! -二次キャッシュがオンになっています- >
                <小道具キー= "hibernate.cache.use_second_level_cache"> trueに</小道具>  
                <! -クエリキャッシュが有効になっている- >  
                <小道具キー= "hibernate.cache.use_query_cache"> trueに</小道具>  
                <! -二次キャッシュプロバイダ設定- >
                <小道具キー= "hibernate.cache.region.factory_class"> org.hibernate.cache.ehcache.EhCacheRegionFactory </小道具>  
                 <!- パスehcache.xmlの設定 - >
                <小道具キー= "hibernate.net.sf.ehcache.configurationResourceName">クラスパス:ehcache.xml </小道具>  
            </小道具>  
        </ property>の

 

ehcache.xml

<?xmlのバージョン= "1.0"エンコード= "UTF-8"?>    
<Ehcacheののxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance"    
    のxsi:のnoNamespaceSchemaLocation =「HTTP:// Ehcacheの.ORG / ehcache.xsd "    
    UpdateCheck ="偽">  
    <! - DISKSturyパスを設定する必要があります、またはエラー- >
    <diskStoreパス=" D:\ソース\ Ehcacheの「/>  
    <! -あなたは、データの有効期限ポリシーを有効にした場合クエリキャッシュあなたがオンにする必要があります- >  
    <defaultCache  
        maxElementsInMemory = "10000"
        永遠= "false"を  
        timeToIdleSecondsなど= "600"  
        timeToLiveSeconds = "600"  
        overflowToDisk = "trueに"  
        />
    <! -クラスに固有のデータ有効期限ポリシー- >  
    <キャッシュ名= "com.gxuwz.labasswork.model.entity.SysUser"  
        maxElementsInMemory = "10000"  
        永遠= "false"を  
        timeToIdleSecondsなど= "300"  
        timeToLiveSeconds = "600"  
        overflowToDisk = "真"  
        />  

</ ehcacheを>  

在のhbm.xml文件中加入<キャッシュ使用量= "読み書き"領域= "com.gxuwz.labasswork .model.entity.SysUser」/>

<?xml version = "1.0"エンコード= "UTF-8"?>
<DOCTYPEのhibernateマッピングPUBLIC! " - //休止/休止状態のマッピングDTD 3.0 // EN"
「http://www.hibernate.org/dtd /hibernate-mapping-3.0.dtd ">
<! -
    MyEclipseの永続化ツールによって自動生成マッピングファイル
- >
<休止状態マッピング>
    <クラス名=" com.gxuwz.labasswork.model.entity.SysUser "表=" sys_user "カタログ=" lab_ass_work ">
    <キャッシュ使用="読み書き」領域= "com.gxuwz.labasswork.model.entity.SysUser" />
        <id名= "ID"タイプ= "java.lang.Integerの">
            <列名= "ID" />
            <ジェネレータクラス=」ネイティブ」/>
        </ ID>
        <プロパティ名= "userNameに"タイプ= "java.lang.Stringで">
            <カラム名= "USER_NAME"長さ= "30"ではないヌル= "true"を一意= "TRUE" />
        </ property>の
        <プロパティ名= "userPwd"タイプ= "java.lang.Stringで">
            <カラム名= "user_pwd"長さ= "30" />
        </ property>の
        <プロパティ名= "USERTYPE"タイプ= "java.lang.Stringで">
            <カラム名= "USER_TYPE"長さ= "10" />
        </プロパティ>
        <プロパティ名= "stuNo"タイプ= "java.lang.Stringで">
            <カラム名= "stu_no"長さ= "30"ユニーク= "TRUE" />
        </プロパティ>
        <プロパティ名= "stuName"タイプ= "java.lang.Stringで">
            <カラム名= "stu_name"長さ= "30" />
        </プロパティ>
        <プロパティ名= "主要"タイプ= "java.lang.Stringで">
            <カラム名= "主要"長さ= "30" />
        </ property>の
        <プロパティ名= "研究所"タイプ= "java.lang.Stringで">
            <カラム名="研究所」長さ= "30" />
        </ property>の
        <プロパティ名= "クラス"タイプ= "java.lang.Stringで">
            <カラム名= "クラス"長さ= "30" / >
        </ property>の
        <プロパティ名= "グレード"タイプ= "java.lang.Stringで">
            <カラム名= "グレード"長さ= "4" />
        </プロパティ>
        <プロパティ名= "電話"タイプ= "java.lang.Stringで">
            <カラム名= "電話"の長さ= "11" />
        </ property>の
    </クラス>
</休止状態マッピング>

二次キャッシュの負荷を使用して()場合は、get()は、SQL文では、唯一のクエリを送信

クエリキャッシュ

query.list()を使用する前に、query.setCacheable(真)開いている必要があります。

おすすめ

転載: www.cnblogs.com/riyueqian/p/12120697.html