空間站

          北極心空

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
          屬性名 用途
          hibernate.dialect 一個Hibernate Dialect類名允許Hibernate針對特定的關系數據庫生成優化的SQL. 取值 full.classname.of.Dialect
          hibernate.show_sql 輸出所有SQL語句到控制臺. 有一個另外的選擇是把org.hibernate.SQL這個log category設為debugeg. 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意味著將關閉默認的外連接抓取. 取值 建議在03之間取值
          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

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

          屬性名 用途
          hibernate.jdbc.fetch_size 非零值,指定JDBC抓取數量的大小 (調用Statement.setFetchSize()).
          hibernate.jdbc.batch_size 非零值,允許Hibernate使用JDBC2的批量更新. 取值 建議取530之間的值
          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中去.

          表 3.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

          表 3.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

          表 3.7.  其他屬性

          屬性名 用途
          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

          3.4.1.  SQL方言

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

          表 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語句被執行時為它們記錄日志
          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相關信息做日志 (信息量較大, 但對查錯非常有幫助)

          表 3.10. 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 Borland ES

          posted on 2008-04-22 18:28 蘆葦 閱讀(58599) 評論(1)  編輯  收藏 所屬分類: Hibernate

          Feedback

          # re: Hibernate 參數設置一覽表 2008-10-14 18:13 蘆葦

          SQL方言

          1、Hibernate JDBC屬性

          屬性名 用途
          hibernate.connection.driver_class jdbc驅動類
          hibernate.connection.url jdbc URL
          hibernate.connection.username 數據庫用戶
          hibernate.connection.password 數據庫用戶密碼
          hibernate.connection.pool_size 連接池容量上限數目
          注:使用C3P0的properties樣例代碼:
          hibernate.connection.driver_class = org.postgresql.Driver
          hibernate.connection.url = jdbc:postgresql://localhost/mydatabase
          hibernate.connection.username = myuser
          hibernate.connection.password = secret
          hibernate.c3p0.min_size=5
          hibernate.c3p0.max_size=20
          hibernate.c3p0.timeout=1800
          hibernate.c3p0.max_statements=50
          hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

          2、Hibernate的數據源屬性
          屬性名 用途
          hibernate.connection.datasource 數據源JNDI名字
          hibernate.jndi.url JNDI提供者的URL (可選)
          hibernate.jndi.class JNDI InitialContextFactory (可選)
          hibernate.connection.username 數據庫用戶 (可選)
          hibernate.connection.password 數據庫用戶密碼 (可選)
          注:應用程序服務器JNDI數據源的hibernate.properties樣例代碼:
          hibernate.connection.datasource = java:/comp/env/jdbc/test
          hibernate.transaction.factory_class = \
              org.hibernate.transaction.JTATransactionFactory
          hibernate.transaction.manager_lookup_class = \
              org.hibernate.transaction.JBossTransactionManagerLookup
          hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

          3、Hibernate配置屬性(可選)
          屬性名 用途
          hibernate.dialect 一個Hibernate Dialect類名允許Hibernate針對特定的關系數據庫生成優化的SQL.

          取值full.classname.of.Dialect

          hibernate.show_sql 輸出所有SQL語句到控制臺.

          取值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意味著將關閉默認的外連接抓取.

          取值 建議在03之間取值

          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的批量更新.

          取值 建議取530之間的值

          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). (在Hibernate和CMT一起使用時很有用.)

          取值true | false

          hibernate.transaction.auto_close_session 如果開啟, session在事務完成前將被自動關閉. (在Hibernate和CMT一起使用時很有用.)

          取值true | false


          7、其他屬性
          屬性名 用途
          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.

          取值update | create | create-drop

          hibernate.cglib.use_reflection_optimizer 開啟CGLIB來替代運行時反射機制(系統級屬性). 反射機制有時在除錯時比較有用. 注意即使關閉這個優化, Hibernate還是需要CGLIB. 你不能在hibernate.cfg.xml中設置此屬性.

          取值true | false


          8、SQL方言
             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

          9、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的自動狀態轉換和其他關于查詢解析的信息記錄日志
          org.hibernate.secure 為JAAS認證請求做日志
          org.hibernate 為任何Hibernate相關信息做日志 (信息量較大, 但對查錯非常有幫助)

            回復  更多評論
            

          主站蜘蛛池模板: 新宁县| 沛县| 长宁县| 庄河市| 阿合奇县| 长葛市| 抚顺市| 宁强县| 玛纳斯县| 淅川县| 屏东县| 齐齐哈尔市| 长岭县| 汶上县| 吉隆县| 阿坝| 阜南县| 曲阜市| 吴忠市| 翁牛特旗| 清流县| 新乡县| 德清县| 宿迁市| 晋州市| 女性| 吉隆县| 尤溪县| 巨鹿县| 武穴市| 合阳县| 甘洛县| 南乐县| 古蔺县| 霍林郭勒市| 岳池县| 察雅县| 乾安县| 淄博市| 江津市| 金堂县|