Hibernate 中配置屬性詳解(hibernate.properties)

來源:互聯網
上載者:User

標籤:密碼   控制台   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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.