`

Hibernate配置项属性解释

    博客分类:
  • Java
阅读更多

hibernate.properties

来自:http://blog.csdn.net/hitman9099/archive/2010/05/10/5574614.aspx


#Oracle方言

 hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

 hibernate.dialect=org.hibernate.dialect.SQLServerDialect

#hibernate方言

hibernate.dialect=org.hibernate.dialect.SQLServerDialect

#是否启用二级缓存,

hibernate.cache.use_query_cache=true

#二级缓存class

 hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider

 hibernate.cache.provider_class=org.hibernate.cache.SingletonEhCacheProvider

hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider

# 二级缓存配置文件

hibernate.cache.provider_configuration_file_resource_path=/cache/ehcache.xml

#是否同步数据库结构(自动创建|更新|验证数据库表结构)

hibernate.hbm2ddl.auto=none

none: 不做任何操作

create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行。会导致数据库表数据丢失。

create-drop: 每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。

update:第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。

validate:验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

 

#关于hibernate.jdbc.fetch_size与 hibernate.jdbc.batch_size的设置,可能会将严重影响Hibernate的CRUD性能

#设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数。

#Fetch Size设的越大,读数据库的次数越少,速度越快;Fetch Size越小,读数据库的次数越多,速度越慢。

#MySQL就支持Fetch Size特性

hibernate.jdbc.fetch_size=20

# 设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小。

#Batch Size越大,批量操作的向数据库发送sql的次数越少,速度就越快。

hibernate.jdbc.batch_size=50

#设置外连接抓取树的最大深度取值. 建议设置为0到3之间

#hibernate.max_fetch_depth


#是否显示最终执行的SQL(开发环境)

hibernate.show_sql=false

# 格式化显示的SQL

hibernate.format_sql=false

# 如果设置为true,Hiberante将为SQL产生注释,这样更利于调试。默认值为false。取值为true|false。

hibernate.use_sql_comments=false

 

 

(附录) Hibernate配置项:

1.Hibernate配置项

(1)hibernate.dialect指定方言后,Hibernate可以根据低层数据库自动产生优化过的SQL。取值为 org.hibenate.dialect.Dialect的继承类。多数情况下,Hibernate可以根据低层JDBC返回的metadata来判断。

(2)hibernate.show_sql打印所有的SQL语句到控制台,可以通过设置org.hibernate.SQL类的日志策略到DEBUG级,实现同样的效果。取值 true|false。

(3)hibernate.format_sql 格式化SQL语句在打印到控制台或写入日志文件时。取值true|false。

(4)hibernate.default_schema 在产生SQL语句时,在表名前加上映射文件给出的表空间(tablespace)或数据库模式(schema)。取值SCHEMA_NAME。

(5)hibernate.default_catalog 在产生SQL语句时,在表名前加上映射文件给出的catalog。取值CATALOG_NAME。

(6)hibernate.session_factory_name  Hibernate创建org.hibernate.SessionFactory 实例后后会自动的将这个绑定到JNDI中的名字上。取值jndi/sf。

(7)hibernate.max_fetch_depth 设置对单个表的外连接数最大深度。0是屏蔽默认的外连接设置。推荐设置为0到3之间。

(8)hibernate.default_batch_fetch_size 设置Hibernate批量联合查询的尺度。强烈建议。推荐设置为4、8、16。

(9)hibernate.default_entity_mode 默认的实体表现模式,通过SessionFactory打开的所有的Session。取值,dynamic-map、dom4j、pojo。

(10)hibernate.order_updates 强迫Hibernate通过被更新项的主键值排序SQL更新。这样可以在高并发时,减少事务死锁。取值 true|false。

(11)hibernate.generate_statistics 如果设置为true,Hibernate将为性能调整,收集统计信息。取值 true|false。

(12)hibernate.use_identifier_rollback 如果设置为true,产生的标识属性将被重置成默认值,当对象被删除后。取值为true|false。

(13)hibernate.use_sql_comments 如果设置为true,Hiberante将为SQL产生注释,这样更利于调试。默认值为false。取值为true|false。

2.Hibernate JDBC和连接的属性

(1)hibernate.jdbc.fetch_size 指定JDBC的查询尺度。通过调用(Statement.setFetchSize())。

(2)hibernate.jdbc.batch_size 指定Hibernate如何使用JDBC2批量更新。取值,推荐5到30。

(3)hibernate.jdbc.batch_versioned_data 设置这个属性为true,JDBC将返回executeBatch执行后正确的行数。打开这个参数,通常是安全的。Hibernate将自动的译码这些数据使用批量DML。默认为false。取值true|false。

(4)hibernate.jdbc.factory_class 选择一个定制的org.hibernate.jdbc.Batcher。所有的应用程序不需要配置这个属性。取值,定义工厂的类名。

(5)hibernate.jdbc.use_scrollable_resultset  Hibernate使用JDBC2的可滚动记录集。当使用用户提供的JDBC连接时,需要设置这个参数。否则,Hibernate使用连接 MetaData。取值 true|false。

(6)hibernate.jdbc.use_streams_for_binary 当读或写二进制数据或序列化数据从JDBC或到JDBC,使用流。系统级的数据。设置true|false。

(7)hibernate.jdbc.use_get_generated_keys 在插入后,可以使用JDBC3的PreparedStatement.getGeneratedKeys()中的值找回本地产生的键值。要求JDBC3+ 和JRE1.4+,如果使用Hibernate identifier generator后你的驱动程序有问题,请设置为false。默认情况下,设法连接MetaData来决定。取值,true|false。

(8)hibernate.connection.provider_class 实现了org.hibernate.connection.ConnectionProvider 接口的类的名称,为Hibernate提供连接。

(9)hibernate.connection.isolation 设置JDBC事务隔离的级别。检查java.sql.Connection的定义的常量值,但要注意大多数数据库不支持所有的隔离级别、一些附加的和非标准的隔离级别。取值,1、2、4、8。

(10)hibernate.connection.autocommit  JDBC共享连接的自动提交。(不推荐)取值,true|false。

(11)hibernate.connection.release_mode 指定什么时候,Hibernate应该释放JDBC连接。默认情况下,JDBC是一直存在,只到Session是被明确关闭或断开连接时。对于应用的服务器JTA数据源,你应该使用after_statement强制释放JDBC连接在每个 JDBC请求结束后。对于非JTA数据源,通常是在每个事务结束后释放JDBC连接是有意义的。将该值设为auto时,JTA和CMT事务策略时,是选择 after_statement方式。JDBC事务策略时,是选择after_transaction。取值,auto(default),on_close,after_statment,after_transaction。

注意:这个设置只影响通过SessionFactory.openSession打开的 session。对于通过 SessionFactory.getCurrentSession获取的session,CurrentSessionContext实现类的配置是用来控制这些session的连接释放模式。

(12)hibernate.connection. 传递这些属性到DriverManager.getConnection中。

(13)hibernate.jndi. 传递这些属性到JNDI InitialContextFactory。

3.Hibernate Cache 属性

(1)hibernate.cache.provider_class 定制的CacheProvider的类名。

(2)hibernate.cache.use_minimal_puts 花费更多的读操作,来优化二级缓存的最少写操作。这个操作对于集群缓存是非常有用的。在Hibernate3中,对于集群缓存是默认开启该功能的。取值,true|false。

(3)hibernate.cache.use_query_cache 开启查询缓存,个别查询肯定应该开启查询缓存。取值,true|false。

(4)hibernate.cache.use_second_level_cache 也许过去习惯于完全屏蔽掉二级缓存,默认是开启,对于指定CacheProvider实现类的情况。取值,true|false。

(5)hibernate.cache.query_cache_factory  实现QueryCache接口的类名,默认是内置的StandardQueryCache。

(6)hibernate.cache.region_prefix 对于使用二级缓存区域名的前缀。

(7)hibernate.cache.use_structured_entries 强迫Hibernate在存储数据到二级缓存时,使用更人性化的格式。取值,true|false。

4.Hibernate事务属性

(1)hibernate.transaction.transaction_class  使用Hibernate事务APIs的TransactionFactory的类名。默认是JDBCTransactionFactory。

(2)jta.UserTransaction  JTATransactionFactory使用JNDI名字从应用服务器中获取JTA UserTransaction。取值,jndi/ut。

(3)hibernate.transaction.manager_lookup_class 是一个TransactionManagerLookup实现类的类名。当JVM级别的缓存开启时或在JTA环境中使用hilo generator时,要求指定该值。

(4)hibernate.transaction.flush_before_completion 如果设为true,session将在事务完成阶段之前,自动将缓存区的值推入到数据库中。内置和自动session上下文管理是被优先选用的。取值,true|false。

(5)hibernate.transaction.auto_close_session 如果设为true,session将在事务完成之后,自动的关闭session。内置和自动session上下文管理是被优先选用的。取值,true|false。

5.Miscellaneous properties 各种混合的属性

(1)hibernate.current_session_context_class 提供一个对于当前session生命周期的策略。取值,jta、thread、managed、定制类名。

(2)hibernate.query.factory_class 选择HSQL的解析实现类。取值,org.hibernate.hsql.ast.ASTQueryTranslatorFactory 和org.hibernate.hsql.classic.ClassicQueryTranslatorFactory。

(3)hibernate.query.subsitutions Hibernate中标记符到SQL中标记符的映射。举例说,可以是函数名或普通字符串名。取值,如 hsqLiteral=SQL_LITERAL,hqlFunction=SQLFUN。

(4)hibernate.hbm2ddl.auto 当SessionFactory被创建时,自动的验证或输出模式DDL(也就建表语句)到数据库中。也就是说,自动的验证数据库表结构或先删除再重新建立,或在原表结构上更新数据表结构。当将值置为create-drop时,在SessionFactory被清除时,将删除数据库中表结构。取值,validate、create、update、create-drop。

(5)hibernate.cglib.use_reflection_optimizer 用CGLIB代替运行期的reflection(系统级属性)。在有故障时,反射是非常有用的,注意Hibernate总是需要CGLIB,甚至在你关闭优化后。你不可以设置这个属性在hibernate.cfg.xml 文件中


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hitman9099/archive/2010/05/10/5574614.aspx

分享到:
评论

相关推荐

    hibernate配置文件详解

    这些配置项是 Hibernate 建立对象关系映射所需的基本信息。 Hibernate 配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。通过 hibernate.cfg.xml 和 .hbm.xml 文件,我们可以定义 Hibernate 的基本连接...

    hibernate配置参数大全

    ### Hibernate配置参数详解 #### 一、数据库连接配置(JDBC) 在Hibernate中,与数据库交互的第一步就是正确地配置数据库连接。以下是一些关键的配置参数及其含义: 1. **`hibernate.connection.driver_class`**...

    Hibernate配置文件

    #### 三、关键配置项解释 1. **`<session-factory>`元素**: - 这个元素是`hibernate.cfg.xml`文件的核心,所有的数据库连接配置和其它配置都在这个元素内部进行定义。 2. **`hibernate.dialect`属性**: - **...

    ssh整合带hibernate配置文件

    -- 其他配置项... --> <!-- 配置Hibernate事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> ``` 在上述配置中,`sessionFactory` ...

    hibernate配置文件hibernate.cfg.xml的详细解释

    ### Hibernate配置文件hibernate.cfg.xml的详细解释 #### 一、引言 在Java持久化框架Hibernate中,`hibernate.cfg.xml`是核心配置文件之一,它用于配置Hibernate的运行环境,包括数据库连接信息、性能参数以及其他...

    Hibernate 参数配置详解

    本文档将深入探讨 Hibernate 的核心配置参数及其功能,帮助开发者更好地理解并利用这些配置项以优化应用性能。 #### 二、Hibernate JDBC 和连接(connection)属性 ##### 1. SQL 方言 (Dialect) - **名称**:`...

    hibernate配置连接池大全

    1. C3P0:配置项以`hibernate.c3p0.`开头,如`hibernate.c3p0.min_size`、`hibernate.c3p0.max_size`等。 2. DBCP:Apache的另一个连接池实现,配置项以`hibernate.dbcp.`开头。 3. Druid:阿里巴巴开源的数据库连接...

    Hibernate配置数据库连接

    ### Hibernate配置数据库连接知识点详解 #### 一、Hibernate简介与作用 Hibernate 是一款开源的对象关系映射(Object Relational Mapping, ORM)框架,用于 Java 应用程序与关系型数据库之间的交互。它允许开发者以...

    Hibernate_3.2属性文档介绍_中文

    标题和描述均提到了“Hibernate_3.2属性文档介绍_中文”,这表明文档主要聚焦于Hibernate 3.2版本的属性配置与使用说明。Hibernate是Java领域内一个流行的开源对象关系映射(ORM)框架,它允许开发人员将数据库表...

    Hibernate配置所需jar包

    本篇将详细阐述`Hibernate配置所需jar包`的相关知识点,以及如何正确地配置这些jar包。 首先,我们要明白`hibernate配置时所需全部jar包`是为了确保Hibernate框架能够正常运行。以下是一些常见的Hibernate依赖库,...

    Hibernate可选配置大全

    #### 一、Hibernate配置项概览 Hibernate作为一款优秀的Java持久层框架,提供了丰富的配置选项,以适应不同场景下的需求。本文档将详细解析Hibernate的各种可选配置,帮助开发者深入了解并合理利用这些配置,提升...

    为Spring集成的Hibernate配置二级缓存

    下面我们将详细探讨如何为Spring集成的Hibernate配置二级缓存。 首先,我们需要了解Hibernate的二级缓存机制。一级缓存是每个Session内部的缓存,而二级缓存则是SessionFactory级别的,它可以被多个Session共享。二...

    Hibernate配置数据连接

    本文将详细介绍如何在Hibernate中配置这些连接池,并解释相关配置项的作用。 #### 二、Hibernate默认连接池配置 默认情况下,Hibernate使用其内置的简单连接管理机制。但在实际应用中,通常会使用更高级的连接池...

    hibernate配置元素例子.txt

    ### Hibernate配置元素详解 #### 文件概述 本文档旨在对`hibernate配置元素例子.txt`进行深入解析,以便更好地理解Hibernate框架中所涉及的关键配置元素及其功能。通过具体实例,我们将探讨不同配置项的作用以及...

    hibernate配置详细介绍

    以下是一些基本配置项: 1. **数据库连接**:你需要指定数据库类型(如MySQL、Oracle)、URL、用户名和密码。例如: ```xml <property name="hibernate.connection.driver_class">...

    经典hibernate配置详解

    具体到文档“Hibernate属性配置.doc”,它可能详细解析了上述各个配置项的具体用法和最佳实践,是进一步学习Hibernate配置的宝贵资源。在实际工作中,结合官方文档和示例代码,你可以根据项目的实际需求进行灵活配置...

    hibernate_3配置文件参数汇总

    1. **SQL方言(Dialect)**:`hibernate.dialect` 是一个必不可少的配置项,它定义了Hibernate针对特定关系数据库使用的SQL方言。例如,对于PostgreSQL,应设置为`org.hibernate.dialect.PostgreSQLDialect`。正确选择...

    常用 Hibernate 映射配置说明.doc

    ### 常用Hibernate映射配置详解 #### 1....通过以上详尽的解释,可以看出Hibernate映射配置的强大和灵活性,能够满足各种复杂场景的需求。理解并熟练掌握这些配置,是高效利用Hibernate框架的关键。

    hibernate配置

    虽然提供的部分内容中未详细列出其他配置项,但通常Hibernate还需要其他配置文件的支持,例如`hibernate.cfg.xml`,它是Hibernate的主要配置文件,包含连接数据库的信息以及指定使用哪个映射文件等。 ##### 1. `...

    hibernate[1].cfg.xml中配置信息详解

    ### Hibernate配置文件详解 #### 一、概述 Hibernate是一个强大的对象关系映射(ORM)框架,它能够将Java对象映射到数据库中的记录,并管理这些记录的生命周期。为了确保Hibernate能够正确地工作,我们需要在`...

Global site tag (gtag.js) - Google Analytics