標籤:密碼 控制台 set with 序列 列印 efault post 開啟
Hibernate能在各種不同環境下工作而設計的, 因此存在著大量的配置參數。多數配置參數都 有比較直觀的預設值, 並有隨
Hibernate一同分發的配置範例hibernate.properties 來展示各種配置選項。 所需做的僅僅是將這個範例檔案複製到類路徑
(classpath)下並做一些自訂的修改。
屬性1、Hibernate JDBC屬性
| 屬性名稱 |
用途 |
| hibernate.connection.driver_class |
jdbc驅動類 |
| hibernate.connection.url |
jdbc URL |
| hibernate.connection.username |
資料庫使用者 |
| hibernate.connection.password |
資料庫使用者密碼 |
| hibernate.connection.pool_size |
串連池容量上限數目 |
屬性2:Hibernate 資料來源屬性
| 屬性名稱 |
用途 |
| hibernate.connection.datasource |
資料來源JNDI名字 |
| hibernate.jndi.url |
JNDI提供者的URL (可選) |
| hibernate.jndi.class |
JNDI InitialContextFactory類 (可選) |
| hibernate.connection.username |
資料庫使用者 (可選) |
| hibernate.connection.password |
資料庫使用者密碼 (可選) |
屬性3:可選的配置屬性
| 屬性名稱 |
用途 |
| 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中, 將給定的schema/tablespace附加於非全限定名的表名上. 取值 SCHEMA_NAME |
| hibernate.default_catalog |
在產生的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 |
屬性4:Hibernate JDBC和串連(connection)屬性:
| 屬性名稱 |
用途 |
| hibernate.jdbc.fetch_size |
非零值,指定JDBC抓取數量的大小 (調用Statement.setFetchSize()). |
| hibernate.jdbc.batch_size |
非零值,允許Hibernate使用JDBC2的批次更新. 取值 建議取5到30之間的值 |
| hibernate.jdbc.batch_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.<propertyName> |
將JDBC屬性propertyName傳遞到DriverManager.getConnection()中去. |
| hibernate.jndi.<propertyName> |
將屬性propertyName傳遞到JNDI InitialContextFactory中去. |
屬性5: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 |
能用來完全禁止使用二級緩衝. 對那些在類的映射定義中指定<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 |
屬性6: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 |
屬性7:方言
| 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 |
屬性8:其他屬性
| 屬性名稱 |
用途 |
| 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 |
Hibernate 中配置屬性詳解(hibernate.properties)