`
wang_decheng
  • 浏览: 48597 次
  • 性别: Icon_minigender_1
  • 来自: 烟台
文章分类
社区版块
存档分类
最新评论

Hibernate可选配置项

阅读更多

下面介绍的Hibernate属性,有一些是系统级别的。系统级别的属性只能通过-Dproperty=value来设置或在hibernate.properties文件中设置,不能使用上面的方式设置。

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文件中。

分享到:
评论

相关推荐

    Hibernate可选配置大全

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

    hibernate_3配置文件参数汇总

    4. **可选配置属性**: - `hibernate.show_sql`:如果设置为`true`,Hibernate会在控制台输出所有执行的SQL语句,便于调试。 - `hibernate.format_sql`:若设置为`true`,将使输出的SQL格式更美观,易于阅读。 - ...

    配置hibernate数据源

    配置Hibernate数据源是一项基础而重要的任务,涉及在Java应用程序中集成和使用Hibernate框架以及MySQL数据库。以下内容旨在详细介绍如何在MyEclipse开发环境中配置Hibernate数据源,同时解释相关概念和步骤。 首先...

    Hibernate3的配置参数汇总

    - `hibernate.connection.pool_size`:连接池的最大容量,如C3P0连接池的配置项。 2. **C3P0连接池配置**: - `hibernate.c3p0.min_size`:最小连接数。 - `hibernate.c3p0.max_size`:最大连接数。 - `...

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

    本文将详细介绍`hibernate.cfg.xml`中各个配置项的意义及其可能的取值,帮助开发者更好地理解和应用这些配置。 #### 二、核心配置属性 ##### 1. `hibernate.dialect` **用途**:指定Hibernate使用的方言(Dialect...

    hibernate配置-开源代码.doc

    7. **hibernate.hbm2ddl.auto**:指定数据库表的创建策略,可选值有 create、create-drop、update、validate 等。 这些配置项对于正确设置 Hibernate 的运行环境至关重要,通过合理的配置可以提高应用程序的性能并...

    hibernate-mapping参数详解

    本文将详细解析 `hibernate-mapping` 文件中的各种关键配置项及其含义。 #### 1. default-access (可选 - 默认为 property) 此属性用于指定 Hibernate 访问实体类属性的方式,默认为通过 getter 和 setter 方法...

    Hibernate Tool.zip

    5. **生成代码**:完成设置后,点击“生成”按钮,Hibernate Tool会根据数据库表结构生成对应的实体类、映射文件以及可选的DAO层代码。生成的代码通常会遵循Java Bean规范,包含私有字段、getter和setter方法以及@...

    hibernate3.3 jar包

    `optional`目录可能包含了一些非强制性的、可选的库文件,它们可能提供了额外的功能或扩展,例如特定的缓存实现、日志库或其他第三方工具。开发者可以根据项目需求选择性地引入这些库。 `bytecode`可能指的是...

    SSH框架整合中hibernate框架所需要的配置文件

    4. **缓存配置**:可选配置,用于设置二级缓存,提高数据访问性能。 5. **实体类扫描路径**:告诉Hibernate哪些包下的类是需要映射到数据库的实体类。 其次,描述中提到的"在JavaBean所在的包下映射的配置文件"通常...

    Hibernate基本实现

    2. **实体类映射文件**(可选):实体类可以使用XML映射文件(如User.hbm.xml)或注解方式(如上例所示)进行映射。 ### 四、基本操作 1. **SessionFactory创建**:使用配置文件创建SessionFactory实例,它是线程...

    hibernate3.5.6中文文档pdf格式

    - **Hibernate配置**:讲解了Hibernate的核心配置文件`hibernate.cfg.xml`的配置项及其作用。 - **用Maven构建**:介绍了如何使用Maven管理项目的依赖库及构建过程。 - **启动和辅助类**:说明了如何编写主程序...

    hibernate学习笔记

    这些配置项可以帮助开发者更加灵活地管理 Java 应用程序中的集合数据,并有效地将其映射到关系型数据库中。了解这些细节有助于开发者更好地掌握 Hibernate 的使用方法,提高开发效率和代码质量。

    Hibernate中所有包作用详细讲解

    这个jar包含了一些可选依赖项,例如用于特定功能的库,这些功能可能不是所有用户都需要的。例如,某些功能可能需要特定的数据库驱动或者外部库才能工作。 #### 11. c3p0.jar C3P0 是一个开源的JDBC连接池实现,它...

    hibernate中文文档

    - **可选的配置属性**:列举一些可选的配置选项,如SQL方言、外连接抓取、二进制流处理等。 - **日志**:配置Hibernate的日志框架,如Log4j或SLF4J。 - **实现NamingStrategy**:自定义命名策略来处理Hibernate...

    hibernate 3.5.0-final core reference 中文pdf

    - **可选的配置属性**:列举了一系列可选配置项,包括SQL方言、外连接抓取等。 - **SQL方言**:介绍了如何选择适合特定数据库系统的SQL方言。 - **外连接抓取(Outer Join Fetching)**:解释了如何启用外连接抓取以...

    Hibernate Developer Guide

    **1.2.5 可选配置属性** Hibernate还提供了许多可选的配置属性,如事务隔离级别、查询超时等,以满足更复杂的使用场景。 ###### 1.3 方言 **1.3.1 指定要使用的方言** 方言用于将SQL语句转换成特定数据库的语法...

    idea创建hibernate框架过程视屏

    2. **配置POM.xml**:在POM.xml文件中,添加必要的依赖,包括Hibernate核心库、JDBC驱动(对应MySQL的情况)、Spring Framework(可选,用于更高级的管理)以及其他辅助库。例如: ```xml <groupId>org....

    hibernate3.5 开发手册

    - **可选配置属性**:列举了一系列可选配置项,如 SQL 方言、外键查询等,以满足不同场景的需求。 - **日志记录**:介绍了如何配置 Hibernate 的日志记录系统,以捕获执行的 SQL 语句和其他调试信息。 - **命名策略*...

Global site tag (gtag.js) - Google Analytics