SQL方言
1ã€Hibernate JDBC属æ€?/strong>属性å | 用é€? |
---|---|
hibernate.connection.driver_class | jdbc驱动¾c?/em> |
hibernate.connection.url | jdbc URL |
hibernate.connection.username | æ•°æ®åº“用æˆ?/em> |
hibernate.connection.password | æ•°æ®åº“用户密ç ?/em> |
hibernate.connection.pool_size | ˜qžæŽ¥æ± 容é‡ä¸Šé™æ•°ç›?/em> |
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çš„æ•°æ®æºå±žæ€?/strong>
属性å | 用é€? |
---|---|
hibernate.connection.datasource | æ•°æ®æºJNDIåå— |
hibernate.jndi.url | JNDIæä¾›è€…çš„URL (å¯é€? |
hibernate.jndi.class | JNDI InitialContextFactory¾c?/em> (å¯é€? |
hibernate.connection.username | æ•°æ®åº“用æˆ?/em> (å¯é€? |
hibernate.connection.password | æ•°æ®åº“用户密ç ?/em> (å¯é€? |
hibernate.transaction.factory_class = \
org.hibernate.transaction.JTATransactionFactory
hibernate.transaction.manager_lookup_class = \
org.hibernate.transaction.JBossTransactionManagerLookup
hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
3ã€?strong>Hibernateé…置属性(å¯é€‰ï¼‰
属性å | 用é€? |
---|---|
hibernate.dialect | 一个Hibernate Dialect¾cÕdå…许Hibernate针对特定的关¾pÀL•°æ®åº“生æˆä¼˜åŒ–çš„SQL.
å–å€?/span>full.classname.of.Dialect |
hibernate.show_sql | 输出所有SQLè¯å¥åˆ°æŽ§åˆ¶å°.
å–å€?/span>true | false |
hibernate.format_sql | 在logå’Œconsole䏿‰“å°å‡ºæ›´æ¼‚亮的sql.
å–å€?/span>true | false |
hibernate.default_schema | 在生æˆçš„SQLä¸? ž®†ç»™å®šçš„schema/tablespaceé™„åŠ äºŽéžå…¨é™å®šå的表å上.
å–å€?/span>SCHEMA_NAME |
hibernate.default_catalog | 在生æˆçš„SQLä¸? ž®†ç»™å®šçš„catalogé™„åŠ äºŽæ²¡å…¨é™å®šå的表å上.
å–å€?/span>CATALOG_NAME |
hibernate.session_factory_name | SessionFactory创å¾åŽï¼Œž®†è‡ªåЍä‹É用这个åå—绑定到JNDIä¸?
å–å€?/span>jndi/composite/name |
hibernate.max_fetch_depth | 为å•å‘å…³è?一对一, 多对一)的外˜qžæŽ¥æŠ“å–åQˆouter join fetchåQ‰æ ‘讄¡½®æœ€å¤§æ·±åº? å€égØ“0æ„味瀞®†å…³é—默认的外连接抓å?
å–å€?/span> 廸™®®åœ?tt class="literal">0åˆ?tt class="literal">3之间å–å€? |
hibernate.default_batch_fetch_size | 为Hibernateå…Œ™”çš„æ‰¹é‡æŠ“å–设¾|®é»˜è®¤æ•°é‡?
å–å€?/span> 廸™®®çš„å–å€égØ“4, 8, å’?tt class="literal">16 |
hibernate.default_entity_mode | 为由˜q™ä¸ªSessionFactory打开的所有Session指定默认的实体表现模å¼?
å–å€?/span>dynamic-map, dom4j, pojo |
hibernate.order_updates | 强制Hibernate按照被更新数æ®çš„主键åQŒäØ“SQL更新排åºã€‚这么嚞®†å‡ž®‘åœ¨é«˜åÆˆå‘ç³»¾lŸä¸äº‹åŠ¡çš„æ»é”ã€?
å–å€?/span>true | false |
hibernate.generate_statistics | 如果开å? Hibernatež®†æ”¶é›†æœ‰åŠ©äºŽæ€§èƒ½è°ƒèŠ‚çš„ç»Ÿè®¡æ•°æ?
å–å€?/span>true | false |
hibernate.use_identifer_rollback | 如果开å? åœ¨å¯¹è±¡è¢«åˆ é™¤æ—¶ç”Ÿæˆçš„æ ‡è¯†å±žæ€§å°†è¢«é‡è®¾äؓ默认å€?
å–å€?/span>true | false |
hibernate.use_sql_comments | 如果开å? Hibernatež®†åœ¨SQLä¸ç”Ÿæˆæœ‰åŠ©äºŽè°ƒè¯•çš„æ³¨é‡Šä¿¡æ? 默认å€égØ“false.
å–å€?/span>true | false |
4�strong>Hibernate JDBC和连�connection)属�br />
属性å | 用é€? |
---|---|
hibernate.jdbc.fetch_size | éžé›¶å€û|¼ŒæŒ‡å®šJDBCæŠ“å–æ•°é‡çš„大ž®?(调用Statement.setFetchSize()). |
hibernate.jdbc.batch_size | éžé›¶å€û|¼Œå…许Hibernate使用JDBC2çš„æ‰¹é‡æ›´æ–?
å–å€?/span> 廸™®®å?tt class="literal">5åˆ?tt class="literal">30之间的å€? |
hibernate.jdbc.batch_versioned_data | å¦‚æžœä½ æƒ³è®©ä½ çš„JDBC驱动ä»?tt class="literal">executeBatch()˜q”回æ£ç¡®çš„行计数 , 那么ž®†æ¤å±žæ€§è®¾ä¸?tt class="literal">true(å¼€å¯è¿™ä¸ªé€‰é¡¹é€šå¸¸æ˜¯å®‰å…¨çš„). åŒæ—¶åQŒHibernatež®†äؓ自动版本化的数æ®ä½¿ç”¨æ‰šw‡DML. 默认å€égØ“false.
eg.true | false |
hibernate.jdbc.factory_class | 选择一个自定义çš?tt class="literal">Batcher. 多数应用½E‹åºä¸éœ€è¦è¿™ä¸ªé…¾|®å±žæ€?
eg.classname.of.Batcher |
hibernate.jdbc.use_scrollable_resultset | å…许Hibernate使用JDBC2çš„å¯æ»šåЍ¾l“æžœé›? åªæœ‰åœ¨ä‹É用用æˆäh供的JDBC˜qžæŽ¥æ—Óž¼Œ˜q™ä¸ªé€‰é¡¹æ‰æ˜¯å¿…è¦çš? å¦åˆ™Hibernate会ä‹É用连接的元数æ?
å–å€?/span>true | false |
hibernate.jdbc.use_streams_for_binary | 在JDBCè¯Õd†™binary (二进åˆ?æˆ?tt class="literal">serializable (å¯åºåˆ—化) 的类型时使用‹¹?stream)(¾pÈ»Ÿ¾U§å±žæ€?.
å–å€?/span>true | false |
hibernate.jdbc.use_get_generated_keys | åœ¨æ•°æ®æ’入数æ®åº“之åŽåQŒå…è®æ€‹É用JDBC3 PreparedStatement.getGeneratedKeys() æ¥èŽ·å–æ•°æ®åº“生æˆçš„key(é”?。需è¦JDBC3+驱动和JRE1.4+, å¦‚æžœä½ çš„æ•°æ®åº“驱动在使用Hibernateçš„æ ‡ 识生æˆå™¨æ—‰™‡åˆ°é—®é¢˜ï¼Œè¯·å°†æ¤å€ÆD®¾ä¸ºfalse. 默认情况下将使用˜qžæŽ¥çš„å…ƒæ•°æ®æ¥åˆ¤å®šé©±åŠ¨çš„èƒ½åŠ›.
å–å€?/span>true|false |
hibernate.connection.provider_class | 自定ä¹?tt class="literal">ConnectionProvider的类å? æ¤ç±»ç”¨æ¥å‘Hibernateæä¾›JDBC˜qžæŽ¥.
å–å€?/span>classname.of.ConnectionProvider |
hibernate.connection.isolation | 讄¡½®JDBC事务隔离¾U§åˆ«. 查看java.sql.Connectionæ¥äº†è§£å„个值的具体æ„义, 但请注æ„多数数æ®åº“éƒ½ä¸æ”¯æŒæ‰€æœ‰çš„隔离¾U§åˆ«.
å–å€?/span>1, 2, 4, 8 |
hibernate.connection.autocommit | å…许被缓å˜çš„JDBC˜qžæŽ¥å¼€å¯è‡ªåЍæäº?autocommit) (ä¸å¾è®?.
å–å€?/span>true | false |
hibernate.connection.release_mode | 指定Hibernate在何旉™‡Šæ”¾JDBC˜qžæŽ¥. 默认情况ä¸?直到Session被显å¼å…³é—或被æ–å¼€˜qžæŽ¥æ—?æ‰ä¼šé‡Šæ”¾JDBC˜qžæŽ¥. 对于应用½E‹åºæœåŠ¡å™¨çš„JTAæ•°æ®æº? ä½ åº”å½“ä‹Éç”?tt class="literal">after_statement, ˜q™æ ·åœ¨æ¯‹Æ¡JDBC调用åŽï¼Œéƒ½ä¼šä¸ÕdŠ¨çš„é‡Šæ”¾è¿žæŽ? 对于éžJTA的连æŽ? 使用after_transaction在æ¯ä¸ªäº‹åŠ¡ç»“æŸæ—¶é‡Šæ”¾˜qžæŽ¥æ˜¯åˆç†çš„. autož®†äØ“JTAå’ŒCMT事务½{–略选择after_statement, 为JDBC事务½{–略选择after_transaction.
å–å€?/span>on_close | after_transaction | after_statement | auto |
hibernate.connection.<propertyName> | ž®†JDBC属æ€?tt class="literal">propertyNameä¼ é€’åˆ°DriverManager.getConnection()ä¸åŽ». |
hibernate.jndi.<propertyName> | ž®†å±žæ€?tt class="literal">propertyNameä¼ é€’åˆ°JNDI InitialContextFactoryä¸åŽ». |
5ã€Hibernate¾~“å˜å±žæ€?br />
属性å | 用é€? |
---|---|
hibernate.cache.provider_class | 自定义的CacheProvider的类å?
å–å€?/span>classname.of.CacheProvider |
hibernate.cache.use_minimal_puts | 以频¾Jçš„è¯ÀL“ä½œäØ“ä»£äh, 优化二çñ”¾~“å˜æ¥æœ€ž®åŒ–写æ“ä½? 在Hibernate3ä¸ï¼Œ˜q™ä¸ªè®„¡½®å¯¹çš„集群¾~“å˜éžå¸¸æœ‰ç”¨, 寚w›†¾Ÿ¤ç¼“å˜çš„实现而言åQŒé»˜è®¤æ˜¯å¼€å¯çš„.
å–å€?/span>true|false |
hibernate.cache.use_query_cache | å…许查询¾~“å˜, 个别查询ä»ç„¶éœ€è¦è¢«è®„¡½®ä¸ºå¯¾~“å˜çš?
å–å€?/span>true|false |
hibernate.cache.use_second_level_cache | 能用æ¥å®Œå…¨ç¦æ¢ä‹É用二¾U§ç¼“å? 寚w‚£äº›åœ¨¾cÈš„æ˜ å°„å®šä¹‰ä¸æŒ‡å®?tt class="literal"><cache>的类åQŒä¼šé»˜è®¤å¼€å¯äºŒ¾U§ç¼“å?
å–å€?/span>true|false |
hibernate.cache.query_cache_factory | 自定义的实现QueryCache接å£çš„ç±»å? 默认为内建的StandardQueryCache.
å–å€?/span>classname.of.QueryCache |
hibernate.cache.region_prefix | 二çñ”¾~“å˜åŒºåŸŸåçš„å‰ç¼€.
å–å€?/span>prefix |
hibernate.cache.use_structured_entries | 强制Hibernateä»¥æ›´äººæ€§åŒ–çš„æ ¼å¼å°†æ•°æ®å˜å…¥äºŒçñ”¾~“å˜.
å–å€?/span>true|false |
6�strong>Hibernate事务属�br />
属性å | 用é€? |
---|---|
hibernate.transaction.factory_class | 一ä¸?tt class="literal">TransactionFactory的类å? 用于Hibernate Transaction API (默认ä¸?tt class="literal">JDBCTransactionFactory).
å–å€?/span>classname.of.TransactionFactory |
jta.UserTransaction | 一个JNDIåå—åQŒè¢«JTATransactionFactory用æ¥ä»Žåº”用æœåŠ¡å™¨èŽ·å–JTA UserTransaction.
å–å€?/span>jndi/composite/name |
hibernate.transaction.manager_lookup_class | 一ä¸?tt class="literal">TransactionManagerLookup的类å?- 当ä‹É用JVM¾U§ç¼“å˜ï¼Œæˆ–在JTA环境ä¸ä‹É用hilo生æˆå™¨çš„æ—¶å€™éœ€è¦è¯¥¾c?
å–å€?/span>classname.of.TransactionManagerLookup |
hibernate.transaction.flush_before_completion | 如果开å? session在事务完æˆåŽž®†è¢«è‡ªåŠ¨æ¸…æ´—(flush). (在Hibernateå’ŒCMT一起ä‹É用时很有ç”?)
å–å€?/span>true | false |
hibernate.transaction.auto_close_session | 如果开å? session在事务完æˆå‰ž®†è¢«è‡ªåЍ关é—. (在Hibernateå’ŒCMT一起ä‹É用时很有ç”?)
å–å€?/span>true | false |
7�strong>其他属�br />
属性å | 用é€? |
---|---|
hibernate.query.factory_class | 选择HQLè§£æžå™¨çš„实现.
å–å€?/span>org.hibernate.hql.ast.ASTQueryTranslatorFactory or org.hibernate.hql.classic.ClassicQueryTranslatorFactory |
hibernate.query.substitutions | ž®†Hibernate查询ä¸çš„½W¦å·æ˜ 射到SQL查询ä¸çš„½W¦å· (½W¦å·å¯èƒ½æ˜¯å‡½æ•°å或常é‡åå?.
å–å€?/span>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC |
hibernate.hbm2ddl.auto | åœ?tt class="literal">SessionFactoryåˆ›å¾æ—Óž¼Œè‡ªåЍž®†æ•°æ®åº“schemaçš„DDL导出到数æ®åº“. 使用 create-dropæ—?在显å¼å…³é—?tt class="literal">SessionFactoryæ—Óž¼Œž®†drop掉数æ®åº“schema.
å–å€?/span>update | create | create-drop |
hibernate.cglib.use_reflection_optimizer | å¼€å¯CGLIBæ¥æ›¿ä»£è¿è¡Œæ—¶å射机制(¾pÈ»Ÿ¾U§å±žæ€?. å射机制有时在除错时比较有用. 注æ„å³ä‹É关闘q™ä¸ªä¼˜åŒ–, Hibernate˜q˜æ˜¯éœ€è¦CGLIB. ä½ ä¸èƒ½åœ¨hibernate.cfg.xmlä¸è®¾¾|®æ¤å±žæ€?
å–å€?/span>true | false |
8�strong>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ã€?strong>Hibernate日志¾cÕdˆ«
¾cÕdˆ« | 功能 |
---|---|
org.hibernate.SQL | 在所有SQL DMLè¯å¥è¢«æ‰§è¡Œæ—¶ä¸ºå®ƒä»¬è®°å½•æ—¥å¿? |
org.hibernate.type | 为所有JDBC傿•°è®°å½•日志 |
org.hibernate.tool.hbm2ddl | 在所有SQL DDLè¯å¥æ‰§è¡Œæ—¶äؓ它们记录日志 |
org.hibernate.pretty | 在session清洗(flush)æ—Óž¼Œä¸ºæ‰€æœ‰ä¸Žå…¶å…³è”的实体(最å¤?0ä¸?的状æ€è®°å½•æ—¥å¿? |
org.hibernate.cache | 为所有二¾U§ç¼“å˜çš„‹zÕdŠ¨è®°å½•æ—¥å¿— |
org.hibernate.transaction | ä¸ÞZº‹åŠ¡ç›¸å…³çš„‹zÕdŠ¨è®°å½•æ—¥å¿— |
org.hibernate.jdbc | 为所有JDBC资æºçš„获å–记录日å¿? |
org.hibernate.hql.ast | 为HQLå’ŒSQL的自动状æ€è{æ¢å’Œå…¶ä»–关于查询解æžçš„ä¿¡æ¯è®°å½•æ—¥å¿? |
org.hibernate.secure | 为JAAS认è¯è¯äh±‚åšæ—¥å¿? |
org.hibernate | ä¸ÞZ“Q何Hibernate相关信æ¯åšæ—¥å¿?(ä¿¡æ¯é‡è¾ƒå¤? 但对查错éžå¸¸æœ‰å¸®åŠ? |