
Hibernate 参数设置一览表.doc
6页有大量属性能用来控制 Hibernate 在运行期的行为. 它们都是可选的, 并拥有适当的默认 值.警告: 其中一些属性是“系统级(system-level)的“. 系统级属性只能通过 java - Dproperty=value 或 hibernate.properties 来设置, 而不能用上面描述的其他方法来设置.表表 3.3.3.3. HibernateHibernate 配置属性配置属性 属性名属性名用途用途hibernate.dialect一个 Hibernate Dialect 类名允许 Hibernate 针 对特定的关系数据库生成优化的 SQL. 取值取值 full.classname.of.Dialecthibernate.show_sql输出所有 SQL 语句到控制台. 有一个另外的选择 是把 org.hibernate.SQL 这个 log category 设为 debug eg.eg. true | falsehibernate.format_sql在 log 和 console 中打印出更漂亮的 SQL 取值取值 true | falsehibernate.default_schema在生成的 SQL 中, 将给定的 schema/tablespace 附加于非全限定名的表名上. 取值取值 SCHEMA_NAMEhibernate.default_catalog在生成的 SQL 中, 将给定的 catalog 附加于非全 限定名的表名上. 取值取值 CATALOG_NAMEhibernate.session_factory_nameSessionFactory 创建后,将自动使用这个名字绑 定到 JNDI 中. 取值取值 jndi/composite/namehibernate.max_fetch_depth为单向关联(一对一, 多对一)的外连接抓取 (outer join fetch)树设置最大深度. 值为 0 意味着将关闭默认的外连接抓取. 取值取值 建议在 0 到 3 之间取值hibernate.default_batch_fetch_size为 Hibernate 关联的批量抓取设置默认数量. 取值取值 建议的取值为 4, 8, 和 16hibernate.default_entity_mode为由这个 SessionFactory 打开的所有 Session 指 定默认的实体表现模式. 取值取值 dynamic-map, dom4j, pojohibernate.order_updates强制 Hibernate 按照被更新数据的主键,为 SQL 更新排序。
这么做将减少在高并发系统中事务的 死锁 取值取值 true | falsehibernate.generate_statistics如果开启, Hibernate 将收集有助于性能调节的统 计数据. 取值取值 true | falsehibernate.use_identifer_rollback如果开启, 在对象被删除时生成的标识属性将被 重设为默认值. 取值取值 true | falsehibernate.use_sql_comments如果开启, Hibernate 将在 SQL 中生成有助于调试 的注释信息, 默认值为 false. 取值取值 true | false表表 3.4.3.4. HibernateHibernate JDBCJDBC 和连接和连接(connection)(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.eg. true | falsehibernate.jdbc.factory_class选择一个自定义的 Batcher. 多数应用程序 不需要这个配置属性. eg.eg. classname.of.Batcherhibernate.jdbc.use_scrollable_resultset允许 Hibernate 使用 JDBC2 的可滚动结果集.只有在使用用户提供的 JDBC 连接时,这个 选项才是必要的, 否则 Hibernate 会使用连 接的元数据. 取值取值 true | falsehibernate.jdbc.use_streams_for_binary在 JDBC 读写 binary (二进制)或 serializable (可序列化) 的类型时使用流 (stream)(系统级属性). 取值取值 true | falsehibernate.jdbc.use_get_generated_keys在数据插入数据库之后,允许使用 JDBC3 PreparedStatement.getGeneratedKeys() 来获取数据库生成的 key(键)。
需要 JDBC3+ 驱动和 JRE1.4+, 如果你的数据库驱动在使 用 Hibernate 的标 识生成器时遇到问题, 请将此值设为 false. 默认情况下将使用连 接的元数据来判定驱动的能力. 取值取值 true|falsehibernate.connection.provider_class自定义 ConnectionProvider 的类名, 此类 用来向 Hibernate 提供 JDBC 连接. 取值取值 classname.of.ConnectionProviderhibernate.connection.isolation设置 JDBC 事务隔离级别. 查看 java.sql.Connection 来了解各个值的具体 意义, 但请注意多数数据库都不支持所有的 隔离级别. 取值取值 1, 2, 4, 8hibernate.connection.autocommit允许被缓存的 JDBC 连接开启自动提交 (autocommit) (不建议). 取值取值 true | falsehibernate.connection.release_mode指定 Hibernate 在何时释放 JDBC 连接. 默 认情况下,直到 Session 被显式关闭或被断 开连接时,才会释放 JDBC 连接. 对于应用程 序服务器的 JTA 数据源, 你应当使用 after_statement, 这样在每次 JDBC 调用后, 都会主动的释放连接. 对于非 JTA 的连接, 使用 after_transaction 在每个事务结束时 释放连接是合理的. auto 将为 JTA 和 CMT 事 务策略选择 after_statement, 为 JDBC 事务 策略选择 after_transaction. 取值取值 auto (默认) | on_close | after_transaction | after_statement注意,这些设置仅对通过SessionFactory.openSession 得到的 Session 起作用。
对于通过 SessionFactory.getCurrentSession 得到的 Session,所配置的 CurrentSessionContext 实现控制这些 Session 的连接释放模式请 参阅第 2.5 节 “上下文相关的 (Contextual)Session”hibernate.connection.将 JDBC 属性 propertyName 传递到 DriverManager.getConnection()中去.hibernate.jndi.将属性 propertyName 传递到 JNDI InitialContextFactory 中去.表表 3.5.3.5. HibernateHibernate 缓存属性缓存属性 属性名属性名用途用途hibernate.cache.provider_class自定义的 CacheProvider 的类名. 取值取值 classname.of.CacheProviderhibernate.cache.use_minimal_puts以频繁的读操作为代价, 优化二级缓存来最 小化写操作. 在 Hibernate3 中,这个设置对 的集群缓存非常有用, 对集群缓存的实现而 言,默认是开启的. 取值取值 true|falsehibernate.cache.use_query_cache允许查询缓存, 个别查询仍然需要被设置为 可缓存的. 取值取值 true|falsehibernate.cache.use_second_level_cache能用来完全禁止使用二级缓存. 对那些在类 的映射定义中指定的类,会默认开启 二级缓存. 取值取值 true|falsehibernate.cache.query_cache_factory自定义实现 QueryCache 接口的类名, 默认为 内建的 StandardQueryCache. 取值取值 classname.of.QueryCachehibernate.cache.region_prefix二级缓存区域名的前缀. 取值取值 prefixhibernate.cache.use_structured_entries强制 Hibernate 以更人性化的格式将数据存 入二级缓存. 取值取值 true|false表表 3.6.3.6. HibernateHibernate 事务属性事务属性 属性名属性名用途用途hibernate.transaction.factory_class一个 TransactionFactory 的类名, 用于 Hibernate Transaction API (默认为JDBCTransactionFactory). 取值取值 classname.of.TransactionFactoryjta.UserTransaction一个 JNDI 名字,被 JTATransactionFactory 用来从应用服 务器获取 JTA UserTransaction. 取值取值 jndi/composite/namehibernate.transaction.manager_lookup_class一个 TransactionManagerLookup 的类名 - 当使用 JVM 级缓存,或在 JTA 环境中 使用 hilo 生成器的时候需要该类. 取值取值 classname.of.TransactionManagerLook uphibernate.transaction.flush_before_complet ion如果开启, session 在事务完成后将被 自动清洗(flush)。
现在更好的方法是 使用自动 session 上下文管理请参见 第 2.5 节 “上下文相关的 (Contextual)Session” 取值取值 true | falsehibernate.transaction.auto_close_session如果开启, session 在事务完成后将被 自动关闭 现在更好的方法是使用自动 session 上下文管理请参见第 2.5 节 “上下文相关的(Contextual) Session” 取值取值 true | false表表 3.7.3.7. 其他属性其他属性 属性名属性名用途用途hib。
