读书人

hibernate 配备属性

发布时间: 2012-07-02 17:46:22 作者: rapoo

hibernate 配置属性

配置属性

?

属性名

用途

hibernate.dialect

允许?Hibernate?针对特定的关系数据库生成优化的?SQL?的org.hibernate.dialect.Dialect?的类名。

例如:full.classname.of.Dialect

在大多数情况下,Hibernate?可以根据?JDBC?驱动返回的?JDBC?metadata选择正确的?org.hibernate.dialect.Dialect?实现。

hibernate.show_sql

输出所有?SQL?语句到控制台。有一个另外的选择是把?org.hibernate.SQL这个?log?category设为?debug。

例如: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

org.hibernate.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_identifier_rollback

如果开启,在对象被删除时生成的标识属性将被重设为默认值。?例如:true|?false

hibernate.use_sql_comments

如果开启,Hibernate?将在?SQL?中生成有助于调试的注释信息,默认值为false。

例如:true?|?false

?

JDBC 和连接(connection)属性

?

属性名

用途

hibernate.jdbc.fetch_size

非零值,指定?JDBC?抓取数量的大小(调用Statement.setFetchSize())。

hibernate.jdbc.batch_size

非零值,允许?Hibernate?使用?JDBC2?的批量更新。?例如:建议取?5到?

30?之间的值

hibernate.jdbc.batch_versioned_data

Set?this?property?to?true?if?your?JDBC?driver?returns?correct?row?

counts?from?executeBatch().?It?is?usually?safe?to?turn?this?option?

on.?Hibernate?will?then?use?batched?DML?for?automatically?versioned?

data.?Defaults?to?false.

例如:true?|?false

hibernate.jdbc.factory_class

选择一个自定义的?Batcher。多数应用程序不需要这个配置属性。

例如: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

在数据插入数据库之后,允许使用?JDBC3PreparedStatement.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。

例如:auto?(默认)?|?on_close?|?after_transaction?|after_statement

This?setting?only?affects?Sessions?returned?fromSessionFactory.openSession.?

For?Sessions?obtained?through?SessionFactory.getCurrentSession,?

theCurrentSessionContext?implementation?configured?for?use?controls?the?

connection?release?mode?for?those?Sessions.?See?第?2.5?节?“上下文相关的会话(Contextual?Session)”

hibernate.connection.<propertyName>

把?JDBC?属性?<propertyName>?传递给DriverManager.getConnection()。

hibernate.jndi.<propertyName>

把?<propertyName>?属性传递给?JNDI?InitialContextFactory。

?

缓存属性

?

属性名

用途

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

?

事务属性

?

属性名

用途

hibernate.transaction.factory_class

一个?TransactionFactory?的类名,用于?HibernateTransaction?

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

If?enabled,?the?session?will?be?automatically?flushed?during?

the?before?completion?phase?of?the?transaction.?Built-in?and?

automatic?session?context?management?is?preferred,?

see?第?2.5?节?“上下文相关的会话(Contextual?Session)”.

例如:true?|?false

hibernate.transaction.auto_close_session

If?enabled,?the?session?will?be?automatically?closed?during?

the?after?completion?phase?of?the?transaction.?Built-in?and?automatic?session?context?management?is?preferred,?

see?第?2.5?节?“上下文相关的会话(Contextual?Session)”.

例如:true?|?false

?

?

其他属性

?

属性名

用途

hibernate.current_session_context_class

Supply?a?custom?strategy?for?the?scoping?of?the?"current"?

Session.?See?第?2.5?节?“上下文相关的会话(Contextual?Session)”?

for?more?information?about?the?built-in?strategies.

例如:jta?|?thread?|?managed?|?custom.Class

hibernate.query.factory_class

选择?HQL?解析器的实现。?

例如:org.hibernate.hql.ast.ASTQueryTranslatorFactory?或

org.hibernate.hql.classic.ClassicQueryTranslatorFactory

hibernate.query.substitutions

将?Hibernate?查询中的符号映射到?SQL?查询中的符号(符号可能

是函数名或常量名字)。?例如:hqlLiteral=SQL_LITERAL,?

hqlFunction=SQLFUNC

hibernate.hbm2ddl.auto

在?SessionFactory?创建时,自动检查数据库结构,或者将数据库?

schema?的?DDL?导出到数据库。使用?create-drop?时,在显式关闭?

SessionFactory?时,将删除掉数据库?schema。

例如:validate?|?update?|?create?|?create-drop

hibernate.bytecode.use_reflection_optimizer

Enables?the?use?of?bytecode?manipulation?instead?of?runtime?

reflection.?This?is?a?System-level?property?and?cannot?be?set?

in?hibernate.cfg.xml.?

Reflection?can?sometimes?be?useful?when?troubleshooting.?

Hibernate?always?requires?either?CGLIB?or?javassist?even?if?

you?turn?off?the?optimizer.

例如:true?|?false

hibernate.bytecode.provider

Both?javassist?or?cglib?can?be?used?as?byte?manipulation?

engines;?the?default?is?javassist.

e.g.?javassist?|?cglib

?

读书人网 >行业软件

热点推荐