spring hibernate properties詳解


轉自:http://blog.sina.com.cn/s/blog_692d0a650100xyqx.html

Hibernate配置屬性

hibernate.dialect:一個Hibernate Dialect類名允許Hibernate針對特定的關系數據庫生成優化的SQL。取值full.classname.of.Dialect(詳解見下)
hibernate.show_sql:輸出所有SQL語句到控制台,有一個另外的選擇是把org.hibernate.SQL這個log category設為debug。 eg:true|false
hibernate.format_sql:在log和console中打印出更漂亮的SQL。取值 true|false
hibernate.default_schema:在生成的SQL中,將給定的scheam/tablespace附加於非全限定名的表名上,取值 SCHEMA_NAME
hibernate.default_catelog:在生成的SQL中,將給定的catalog附加於非全限定名的表名上。取值 CATALOG_NAME.
hibernate.session_factory_name:SessionFactory創建后,將自動使用這個名字綁定到JNDI中,取值 jndi|composite|name
hibernate.max_fetch_depth:為單向關聯(一對一、多對一)的外連接抓取(outer join fetch)樹設置最大深度.值為0意味着將關閉默認的外連接抓取。取值建議在0到3之間。
hibernate.default_batch_fetch_size:為Hibernate關聯的批量抓取設置默認數量。取值建議為4、8和16。
hibernate.default_entity_mode:為由這個SessionFactory打開的所有Session指定默認的實體表現模式,取值 dynamic-map|dom4j|pojo
hibernate.order_updates:強制Hibernate按照被更新數據的主鍵,為SQL更新排序。這么做將減少在高並發系統中事務的死鎖。 取值 true|false
hibernate.generate_statistics:如果開啟,hibernate將收集有助於性能調節的統計數據。取值 true|false
hibernate.use_identifer_rollback:如果開啟,在對象被刪除時生成的標識屬性將被重設為默認值。取值 true|false
hibernate.use_sql_comments:如果開啟,hibernate將在SQL中生成有助於調式的注解信息。默認為false 取值true|false
 
==================================================================================================
- Hibernate JDBC 和連接(Connection)屬性
hibernate.jdbc.fetch_size:非零值,指定JDBC抓取數量的大小(調用Statement.setFetchSize())
hibernate.jdbc.batch_size:非零值,允許Hibernate使用JDBC2的批量更新,取值建議 5 到 30 之間。
hibernate.jdbc.tatch_versioned_data:如果你想讓你的JDBC驅動從executeBatch()返回正確的行計數,那么將此屬性設置為true(開啟這個選項通常是安全的)同時Hibernate將為自動版本化的數據使用批量DML。默認為false。EG: true|false
hibernate.jdbc.factory_class:選擇一個自定義的Batcher.多數應用程序不需要配置這個屬性。eg:classname.of.Batcher
hibernate.jdbc.use_scrollable_resultset:允許Hibernate使用JDBC2的可滾動結果集,自由在使用用戶提供的JDBC連接時,這個選項才是必要的,否則Hibernate會使用連接的元數據 取值 true|false
hibernate.jdbc.use_streams_for_binary:在JDBC讀寫binary(二進制)或serializable(可序列化)的類型時使用流(stream)(系統級屬性)取值 true|false
hibernate.jdbc.use_get_generated_keys:在數據插入數據庫之后,允許使用JDBC3 PreparedStatement.getGeneratedKeys()來獲取數據庫生成的key(鍵)。需要JDBC3+驅動和JRE1.4+,如果你的數據庫驅動在使用Hibernate的標識生成器時遇到問題,請將次值設置為false,默認情況下使用連接的元數據來判定驅動的能力。取值true|false
hibernate.connection.provider_class: 自定義 ConnectionProvider   的類名     此類用來向   Hibernate   提供   JDBC   連接     取值    classname.of.ConnectionProvider   
hibernate.connection.isolation    設置JDBC 事務隔離級別 .  查看 java.sql.Connection 來了解各個值的具體意義 ,  但請注意多數數據庫都不支持所有的隔離級別 .  取值  1, 2, 4, 8  
hibernate.connection.autocommit    允許被緩存的JDBC 連接開啟自動提交 (autocommit) ( 不建議 ).  取值  true | false  
hibernate.connection.release_mode    指定Hibernate 在何時釋放 JDBC 連接 .  默認情況下 , 直到 Session 被顯式關閉或被斷開連接時 , 才會釋放 JDBC 連接 .  對於應用程序服務器的 JTA 數據源 ,  你應當使用 after_statement,  這樣在每次JDBC 調用后,都會主動的釋放連接 .  對於非 JTA 的連接 ,  使用 after_transaction 在每個事務結束時釋放連接是合理的 . auto 將為 JTA 和 CMT 事務策略選擇 after_statement,  為 JDBC 事務策略選擇 after_transaction.  取值 on_close | after_transaction | after_statement | auto 
hibernate.connection:將JDBC屬性propertyName傳遞到DriverManager.getConnection()中去。
hibernate.jndi:將屬性propertyName傳遞到JNDI InitialContextFactory中去
 
==================================================================================================
 
Hibernate緩存屬性  
hibernate.cache.provider_class    自定義的CacheProvider 的類名 .  取值  classname.of.CacheProvider  
hibernate.cache.use_minimal_puts    以頻繁的讀操作為代價,  優化二級緩存來最小化寫操作 .  在 Hibernate3 中,這個設置對的集群緩存非常有用 ,  對集群緩存的實現而言,默認是開啟的 .  取值  true|false  
hibernate.cache.use_query_cache    允許查詢緩存,  個別查詢仍然需要被設置為可緩存的 .  取值  true|false  
hibernate.cache.use_second_level_cache    能用來完全禁止使用二級緩存.  對那些在類的映射定義中指定的類,會默認開啟二級緩存 .  取值  true|false  
hibernate.cache.query_cache_factory    自定義實現QueryCache 接口的類名 ,  默認為內建的 StandardQueryCache.  取值  classname.of.QueryCache  
hibernate.cache.region_prefix    二級緩存區域名的前綴.  取值  prefix  
hibernate.cache.use_structured_entries    強制Hibernate 以更人性化的格式將數據存入二級緩存 .  取值  true|false
 
==================================================================================================
 
Hibernate事務屬性    
hibernate.transaction.factory_class    一個TransactionFactory 的類名 ,  用於 Hibernate Transaction API ( 默認為JDBCTransactionFactory).  取值  classname.of.TransactionFactory  
jta.UserTransaction    一個JNDI 名字,被 JTATransactionFactory 用來從應用服務器獲取 JTA UserTransaction.  取值 jndi/composite/name  
hibernate.transaction.manager_lookup_class    一個TransactionManagerLookup 的類名  -  當使用 JVM 級緩存,或在JTA 環境中使用 hilo 生成器的時候需要該類 .  取值  classname.of.TransactionManagerLookup  
hibernate.transaction.flush_before_completion    如果開啟, session 在事務完成后將被自動清洗 (flush) 。 現在更好的方法是使用自動 session 上下文管理。取值  true | false  
hibernate.transaction.auto_close_session    如果開啟, session 在事務完成后將被自動關閉。 現在更好的方法是使用自動 session 上下文管理。取值  true | false  
 
==================================================================================================
 
 
Hibernate其他屬性  
hibernate.current_session_context_class    為" 當前 " Session 指定一個 ( 自定義的 ) 策略。eg. jta | thread | custom.Class  
hibernate.query.factory_class    選擇HQL 解析器的實現 .  取值 org.hibernate.hql.ast.ASTQueryTranslatorFactory or org.hibernate.hql.classic.ClassicQueryTranslatorFactory  
hibernate.query.substitutions    將Hibernate 查詢中的符號映射到 SQL 查詢中的符號  ( 符號可能是函數名或常量名字).  取值  hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC  
hibernate.hbm2ddl.auto    在SessionFactory 創建時,自動檢查數據庫結構,或者將數據庫 schema 的 DDL 導出到數據庫 .  使用  create-drop 時 , 在顯式關閉 SessionFactory 時,將 drop 掉數據庫 schema.  取值 validate | update | create | create-drop  
hibernate.cglib.use_reflection_optimizer    開啟CGLIB 來替代運行時反射機制 ( 系統級屬性 ).  反射機制有時在除錯時比較有用 .  注意即使關閉這個優化 , Hibernate 還是需要 CGLIB.  你不能在 hibernate.cfg.xml 中設置此屬性 .  取值 true | false 
 
======================================================================================
SQL方言 
你應當總是為你的數據庫將 hibernate.dialect   屬性設置成正確的    org.hibernate.dialect.Dialect   子類     如果你指定一種方言 , Hibernate   將為上面列出的一些屬性使用合理的默認值     為你省去了手工指定它們的功夫    
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
 
 
==================================================================================================
 
Hibernate日志類別 
org.hibernate.SQL    在所有SQL DML 語句被執行時為它們記錄日志  
org.hibernate.type    為所有JDBC 參數記錄日志  
org.hibernate.tool.hbm2ddl    在所有SQL DDL 語句執行時為它們記錄日志  
org.hibernate.pretty    在session 清洗 (flush) 時,為所有與其關聯的實體 ( 最多 20 個 ) 的狀態記錄日志  
org.hibernate.cache    為所有二級緩存的活動記錄日志   
org.hibernate.transaction    為事務相關的活動記錄日志   
org.hibernate.jdbc    為所有JDBC 資源的獲取記錄日志  
org.hibernate.hql.AST    在解析查詢的時候, 記錄 HQL 和 SQL 的 AST 分析日志  
org.hibernate.secure    為JAAS 認證請求做日志  
org.hibernate    為任何Hibernate 相關信息做日志  ( 信息量較大 ,  但對查錯非常有幫助 )  
 
======================================================================================
 
JTA TransactionManagers   
Transaction工廠類 應用程序服務器  
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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM