Hibernate配置屬性
          屬性名 用途
          hibernate.dialect 一個(gè)Hibernate Dialect類名允許Hibernate針對(duì)特定的關(guān)系數(shù)據(jù)庫(kù)生成優(yōu)化的SQL. 取值 full.classname.of.Dialect
          hibernate.show_sql 輸出所有SQL語(yǔ)句到控制臺(tái). 有一個(gè)另外的選擇是把org.hibernate.SQL這個(gè)log category設(shè)為debug。 eg. true | false
          hibernate.format_sql 在log和console中打印出更漂亮的SQL。 取值 true | false
          hibernate.default_schema 在生成的SQL中, 將給定的schema/tablespace附加于非全限定名的表名上. 取值 SCHEMA_NAME
          hibernate.default_catalog 在生成的SQL中, 將給定的catalog附加于非全限定名的表名上. 取值 CATALOG_NAME
          hibernate.session_factory_name SessionFactory創(chuàng)建后,將自動(dòng)使用這個(gè)名字綁定到JNDI中. 取值 jndi/composite/name
          hibernate.max_fetch_depth 為單向關(guān)聯(lián)(一對(duì)一, 多對(duì)一)的外連接抓取(outer join fetch)樹設(shè)置最大深度. 值為0意味著將關(guān)閉默認(rèn)的外連接抓取. 取值 建議在03之間取值
          hibernate.default_batch_fetch_size 為Hibernate關(guān)聯(lián)的批量抓取設(shè)置默認(rèn)數(shù)量. 取值 建議的取值為4, 8, 和16
          hibernate.default_entity_mode 為由這個(gè)SessionFactory打開的所有Session指定默認(rèn)的實(shí)體表現(xiàn)模式. 取值 dynamic-map, dom4j, pojo
          hibernate.order_updates 強(qiáng)制Hibernate按照被更新數(shù)據(jù)的主鍵,為SQL更新排序。這么做將減少在高并發(fā)系統(tǒng)中事務(wù)的死鎖。 取值 true | false
          hibernate.generate_statistics 如果開啟, Hibernate將收集有助于性能調(diào)節(jié)的統(tǒng)計(jì)數(shù)據(jù). 取值 true | false
          hibernate.use_identifer_rollback 如果開啟, 在對(duì)象被刪除時(shí)生成的標(biāo)識(shí)屬性將被重設(shè)為默認(rèn)值. 取值 true | false
          hibernate.use_sql_comments 如果開啟, Hibernate將在SQL中生成有助于調(diào)試的注釋信息, 默認(rèn)值為false. 取值 true | false

          表 3.4.  Hibernate JDBC和連接(connection)屬性

          屬性名 用途
          hibernate.jdbc.fetch_size 非零值,指定JDBC抓取數(shù)量的大小 (調(diào)用Statement.setFetchSize()).
          hibernate.jdbc.batch_size 非零值,允許Hibernate使用JDBC2的批量更新. 取值 建議取530之間的值
          hibernate.jdbc.batch_versioned_data 如果你想讓你的JDBC驅(qū)動(dòng)從executeBatch()返回正確的行計(jì)數(shù) , 那么將此屬性設(shè)為true(開啟這個(gè)選項(xiàng)通常是安全的). 同時(shí),Hibernate將為自動(dòng)版本化的數(shù)據(jù)使用批量DML. 默認(rèn)值為false. eg. true | false
          hibernate.jdbc.factory_class 選擇一個(gè)自定義的Batcher. 多數(shù)應(yīng)用程序不需要這個(gè)配置屬性. eg. classname.of.Batcher
          hibernate.jdbc.use_scrollable_resultset 允許Hibernate使用JDBC2的可滾動(dòng)結(jié)果集. 只有在使用用戶提供的JDBC連接時(shí),這個(gè)選項(xiàng)才是必要的, 否則Hibernate會(huì)使用連接的元數(shù)據(jù). 取值 true | false
          hibernate.jdbc.use_streams_for_binary 在JDBC讀寫binary (二進(jìn)制)serializable (可序列化) 的類型時(shí)使用流(stream)(系統(tǒng)級(jí)屬性). 取值 true | false
          hibernate.jdbc.use_get_generated_keys 在數(shù)據(jù)插入數(shù)據(jù)庫(kù)之后,允許使用JDBC3 PreparedStatement.getGeneratedKeys() 來(lái)獲取數(shù)據(jù)庫(kù)生成的key(鍵)。需要JDBC3+驅(qū)動(dòng)和JRE1.4+, 如果你的數(shù)據(jù)庫(kù)驅(qū)動(dòng)在使用Hibernate的標(biāo) 識(shí)生成器時(shí)遇到問題,請(qǐng)將此值設(shè)為false. 默認(rèn)情況下將使用連接的元數(shù)據(jù)來(lái)判定驅(qū)動(dòng)的能力. 取值 true|false
          hibernate.connection.provider_class 自定義ConnectionProvider的類名, 此類用來(lái)向Hibernate提供JDBC連接. 取值 classname.of.ConnectionProvider
          hibernate.connection.isolation 設(shè)置JDBC事務(wù)隔離級(jí)別. 查看java.sql.Connection來(lái)了解各個(gè)值的具體意義, 但請(qǐng)注意多數(shù)數(shù)據(jù)庫(kù)都不支持所有的隔離級(jí)別. 取值 1, 2, 4, 8
          hibernate.connection.autocommit 允許被緩存的JDBC連接開啟自動(dòng)提交(autocommit) (不建議). 取值 true | false
          hibernate.connection.release_mode 指定Hibernate在何時(shí)釋放JDBC連接. 默認(rèn)情況下,直到Session被顯式關(guān)閉或被斷開連接時(shí),才會(huì)釋放JDBC連接. 對(duì)于應(yīng)用程序服務(wù)器的JTA數(shù)據(jù)源, 你應(yīng)當(dāng)使用after_statement, 這樣在每次JDBC調(diào)用后,都會(huì)主動(dòng)的釋放連接. 對(duì)于非JTA的連接, 使用after_transaction在每個(gè)事務(wù)結(jié)束時(shí)釋放連接是合理的. auto將為JTA和CMT事務(wù)策略選擇after_statement, 為JDBC事務(wù)策略選擇after_transaction. 取值 on_close | after_transaction | after_statement | auto
          hibernate.connection.<propertyName> 將JDBC屬性propertyName傳遞到DriverManager.getConnection()中去.
          hibernate.jndi.<propertyName> 將屬性propertyName傳遞到JNDI InitialContextFactory中去.

          表 3.5.  Hibernate緩存屬性

          屬性名 用途
          hibernate.cache.provider_class 自定義的CacheProvider的類名. 取值 classname.of.CacheProvider
          hibernate.cache.use_minimal_puts 以頻繁的讀操作為代價(jià), 優(yōu)化二級(jí)緩存來(lái)最小化寫操作. 在Hibernate3中,這個(gè)設(shè)置對(duì)的集群緩存非常有用, 對(duì)集群緩存的實(shí)現(xiàn)而言,默認(rèn)是開啟的. 取值 true|false
          hibernate.cache.use_query_cache 允許查詢緩存, 個(gè)別查詢?nèi)匀恍枰辉O(shè)置為可緩存的. 取值 true|false
          hibernate.cache.use_second_level_cache 能用來(lái)完全禁止使用二級(jí)緩存. 對(duì)那些在類的映射定義中指定<cache>的類,會(huì)默認(rèn)開啟二級(jí)緩存. 取值 true|false
          hibernate.cache.query_cache_factory 自定義實(shí)現(xiàn)QueryCache接口的類名, 默認(rèn)為內(nèi)建的StandardQueryCache. 取值 classname.of.QueryCache
          hibernate.cache.region_prefix 二級(jí)緩存區(qū)域名的前綴. 取值 prefix
          hibernate.cache.use_structured_entries 強(qiáng)制Hibernate以更人性化的格式將數(shù)據(jù)存入二級(jí)緩存. 取值 true|false

          表 3.6.  Hibernate事務(wù)屬性

          屬性名 用途
          hibernate.transaction.factory_class 一個(gè)TransactionFactory的類名, 用于Hibernate Transaction API (默認(rèn)為JDBCTransactionFactory). 取值 classname.of.TransactionFactory
          jta.UserTransaction 一個(gè)JNDI名字,被JTATransactionFactory用來(lái)從應(yīng)用服務(wù)器獲取JTA UserTransaction. 取值 jndi/composite/name
          hibernate.transaction.manager_lookup_class 一個(gè)TransactionManagerLookup的類名 - 當(dāng)使用JVM級(jí)緩存,或在JTA環(huán)境中使用hilo生成器的時(shí)候需要該類. 取值 classname.of.TransactionManagerLookup
          hibernate.transaction.flush_before_completion 如果開啟, session在事務(wù)完成后將被自動(dòng)清洗(flush)。 現(xiàn)在更好的方法是使用自動(dòng)session上下文管理。取值 true | false
          hibernate.transaction.auto_close_session 如果開啟, session在事務(wù)完成后將被自動(dòng)關(guān)閉。 現(xiàn)在更好的方法是使用自動(dòng)session上下文管理。取值 true | false

          表 3.7.  其他屬性

          屬性名 用途
          hibernate.current_session_context_class 為"當(dāng)前" Session指定一個(gè)(自定義的)策略。eg. jta | thread | custom.Class
          hibernate.query.factory_class 選擇HQL解析器的實(shí)現(xiàn). 取值 org.hibernate.hql.ast.ASTQueryTranslatorFactory or org.hibernate.hql.classic.ClassicQueryTranslatorFactory
          hibernate.query.substitutions 將Hibernate查詢中的符號(hào)映射到SQL查詢中的符號(hào) (符號(hào)可能是函數(shù)名或常量名字). 取值 hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC
          hibernate.hbm2ddl.auto SessionFactory創(chuàng)建時(shí),自動(dòng)檢查數(shù)據(jù)庫(kù)結(jié)構(gòu),或者將數(shù)據(jù)庫(kù)schema的DDL導(dǎo)出到數(shù)據(jù)庫(kù). 使用 create-drop時(shí),在顯式關(guān)閉SessionFactory時(shí),將drop掉數(shù)據(jù)庫(kù)schema. 取值 validate | update | create | create-drop
          hibernate.cglib.use_reflection_optimizer 開啟CGLIB來(lái)替代運(yùn)行時(shí)反射機(jī)制(系統(tǒng)級(jí)屬性). 反射機(jī)制有時(shí)在除錯(cuò)時(shí)比較有用. 注意即使關(guān)閉這個(gè)優(yōu)化, Hibernate還是需要CGLIB. 你不能在hibernate.cfg.xml中設(shè)置此屬性. 取值 true | false

          3.4.1.  SQL方言

          你應(yīng)當(dāng)總是為你的數(shù)據(jù)庫(kù)將hibernate.dialect屬性設(shè)置成正確的 org.hibernate.dialect.Dialect子類. 如果你指定一種方言, Hibernate將為上面列出的一些屬性使用合理的默認(rèn)值, 為你省去了手工指定它們的功夫.

          表 3.8.  Hibernate SQL方言 (hibernate.dialect)

          RDBMS 方言
          DB2 org.hibernate.dialect.DB2Dialect
          DB2 AS/400 org.hibernate.dialect.DB2400Dialect
          DB2 OS390 org.hibernate.dialect.DB2390Dialect
          PostgreSQL org.hibernate.dialect.PostgreSQLDialect
          MySQL org.hibernate.dialect.MySQLDialect
          MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect
          MySQL with MyISAM org.hibernate.dialect.MySQLMyISAMDialect
          Oracle (any version) org.hibernate.dialect.OracleDialect
          Oracle 9i/10g org.hibernate.dialect.Oracle9Dialect
          Sybase org.hibernate.dialect.SybaseDialect
          Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect
          Microsoft SQL Server org.hibernate.dialect.SQLServerDialect
          SAP DB org.hibernate.dialect.SAPDBDialect
          Informix org.hibernate.dialect.InformixDialect
          HypersonicSQL org.hibernate.dialect.HSQLDialect
          Ingres org.hibernate.dialect.IngresDialect
          Progress org.hibernate.dialect.ProgressDialect
          Mckoi SQL org.hibernate.dialect.MckoiDialect
          Interbase org.hibernate.dialect.InterbaseDialect
          Pointbase org.hibernate.dialect.PointbaseDialect
          FrontBase org.hibernate.dialect.FrontbaseDialect
          Firebird org.hibernate.dialect.FirebirdDialect

          表 3.9.  Hibernate日志類別

          類別 功能
          org.hibernate.SQL 在所有SQL DML語(yǔ)句被執(zhí)行時(shí)為它們記錄日志
          org.hibernate.type 為所有JDBC參數(shù)記錄日志
          org.hibernate.tool.hbm2ddl 在所有SQL DDL語(yǔ)句執(zhí)行時(shí)為它們記錄日志
          org.hibernate.pretty 在session清洗(flush)時(shí),為所有與其關(guān)聯(lián)的實(shí)體(最多20個(gè))的狀態(tài)記錄日志
          org.hibernate.cache 為所有二級(jí)緩存的活動(dòng)記錄日志
          org.hibernate.transaction 為事務(wù)相關(guān)的活動(dòng)記錄日志
          org.hibernate.jdbc 為所有JDBC資源的獲取記錄日志
          org.hibernate.hql.AST 在解析查詢的時(shí)候,記錄HQL和SQL的AST分析日志
          org.hibernate.secure 為JAAS認(rèn)證請(qǐng)求做日志
          org.hibernate 為任何Hibernate相關(guān)信息做日志 (信息量較大, 但對(duì)查錯(cuò)非常有幫助)

          表 3.10. JTA TransactionManagers

          Transaction工廠類 應(yīng)用程序服務(wù)器
          org.hibernate.transaction.JBossTransactionManagerLookup JBoss
          org.hibernate.transaction.WeblogicTransactionManagerLookup Weblogic
          org.hibernate.transaction.WebSphereTransactionManagerLookup WebSphere
          org.hibernate.transaction.WebSphereExtendedJTATransactionLookup WebSphere 6
          org.hibernate.transaction.OrionTransactionManagerLookup Orion
          org.hibernate.transaction.ResinTransactionManagerLookup Resin
          org.hibernate.transaction.JOTMTransactionManagerLookup JOTM
          org.hibernate.transaction.JOnASTransactionManagerLookup JOnAS
          org.hibernate.transaction.JRun4TransactionManagerLookup JRun4
          org.hibernate.transaction.BESTransactionManagerLookup Borland ES

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          posts - 13, comments - 1, trackbacks - 0, articles - 0

          Copyright © 優(yōu)雅Dě頽廢

          主站蜘蛛池模板: 都昌县| 通城县| 西青区| 多伦县| 平昌县| 子长县| 林西县| 内丘县| 英吉沙县| 泸西县| 揭西县| 贡觉县| 太和县| 望奎县| 金昌市| 瑞昌市| 灵武市| 贡觉县| 舒城县| 定结县| 隆林| 潢川县| 沙湾县| 德兴市| 泽库县| 文化| 罗定市| 团风县| 白玉县| 额敏县| 米泉市| 晋宁县| 彭水| 通江县| 桐梓县| 枣阳市| 孝感市| 偏关县| 海晏县| 灵宝市| 马鞍山市|