`

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注解

    很奇怪),分别是CascadeType.PERSIST(级联新建),CascadeType.REMOVE(级联删除),CascadeType.REFRESH(级联刷新),CascadeType.MERGE(级联更新),CascadeType.ALL(全部四项) * 方法一 * 主表: ?@OneToOne...

    ssh(structs,spring,hibernate)框架中的上传下载

     由于Spring通过代理Hibernate完成数据层的操作,所以原Hibernate的配置文件hibernate.cfg.xml的信息也转移到Spring的配置文件中:  代码 4 Spring中有关Hibernate的配置信息 1. 2. !-- 数据源的配置 //--> 3. ...

    基于hibernate 通用查询框架,包含查询、分页列表 功能

    通用查询页面中的查询项、查询出的分页列表都是自动生成的。开发简便、快速,附件中是一套完整的demo和使用说明 支持全部Hql语法格式 Awake 后续功能扩展 1.XML格式数据输出,保证了ajax用户也可以使用Awake框架...

    SpringBoot2.x之SpringDataJPA,Hibernate5

    spring.jpa前缀的相关配置项定义在JpaProperties类中,1.2自动装配类 涉及到的自动配置类包括:JpaBaseConfiguration,HibernateJpaAutoConfiguration1.3常用配置项 1.4配置项spring.jpa.database

    HibernateValidatorJSR303的参考实现使用指南.pdf

    HibernateValidatorJSR303的参考实现使用指南.pdf JSR 303 的参考实现 使用指南 由 Hardy Ferentschik和Gunnar ...9.3. 配置项 9.4. 使用标注处理器 9.4.1. 命令行编译 9.4.2. IDE集成 9.5. 已知问题 10. 进一步阅读

    基于ssh和mysql的教材交易系统

    以及hibernate.cfg.xml中数据源的对应配置项修改一下。 3、安装Tomcat服务器 安装Tomcat6.0 4、将应用程序打包成war包,并放入tomcat服务器的webapps的目录下 war包在tomcat启动时会自动解压并加载应用。 5、启动...

    JAVA程序开发大全---上半部分

    9.2.5 使用Hibernate配置文件编辑器 141 9.2.6 使用反向工程生成持久化对象、映射文件和DAO类 143 9.2.7 使用Hibernate功能 151 9.3 MyEclipse中Hibernate框架的高级操作 152 9.3.1 在Hibernate反向工程中定制映射...

    Grails-MyBatis:用于 Grails 框架的 MyBatis 插件

    添加了对可选乐观锁定的支持 - 基于 MyBatis Optimist 插件( ),同时避免 Java 注释(约定优于配置) 添加了对自定义 Enum 持久性的支持(基于 enum 属性值 - 让 DBA 满意) 文档: ://fzilic.github....

    Spring in Action(第2版)中文版

    3.5.3配置属性的外在化 3.5.4提取文本消息 3.5.5程序事件的解耦 3.5.6让bean了解容器 3.6脚本化的bean 3.6.1给椰子上lime 3.6.2脚本化bean 3.6.3注入脚本化bean的属性 3.6.4刷新脚本化bean 3.6.5编写内嵌的...

    Spring in Action(第二版 中文高清版).part2

    3.5.3 配置属性的外在化 3.5.4 提取文本消息 3.5.5 程序事件的解耦 3.5.6 让Bean了解容器 3.6 脚本化的Bean 3.6.1 给椰子上Lime 3.6.2 脚本化Bean 3.6.3 注入脚本化Bean的属性 3.6.4 刷新脚本化Bean 3.6.5...

    Spring in Action(第二版 中文高清版).part1

    3.5.3 配置属性的外在化 3.5.4 提取文本消息 3.5.5 程序事件的解耦 3.5.6 让Bean了解容器 3.6 脚本化的Bean 3.6.1 给椰子上Lime 3.6.2 脚本化Bean 3.6.3 注入脚本化Bean的属性 3.6.4 刷新脚本化Bean 3.6.5...

    Spring面试题

    在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器(在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。 在典型的 IOC 场景中,容器创建了所有对象,并设置必要的属性将它们...

    Java学习笔记-个人整理的

    {2.10.1}类的属性}{60}{subsection.2.10.1} {2.10.2}类的方法}{61}{subsection.2.10.2} {2.10.3}静态代码块}{62}{subsection.2.10.3} {2.11}\ttfamily final}{63}{section.2.11} {2.12}\ttfamily abstract}{63}...

    从零开始学Spring Boot

    1.9 JPA - Hibernate 1.10 使用JPA保存数据 1.11 使用JdbcTemplate 1.12 Spring Boot修改端口号 1.13 Spring Boot配置ContextPath 1.14 Spring Boot改变JDK编译版本 1.15 处理静态资源(默认资源映射) 1.16 处理静态...

    java三大框架

    曾经对某个类要寻找的是哪个 魔法般的属性项或系统属性感到不解,为此不得不去读Javadoc甚至源编码?有了Spring,你仅仅需要看看类的JavaBean属性。 Inversion of Control的使用(在下面讨论)帮助完成了这种简化。 ...

    容灾项目从入门到实战视频.zip

    1.容灾项目搭建-配置文件 2.1.代码整合 2.2.代码整合 03-页面链接的处理-数据库0值外键的处理-1 04-解决序号不正确的问题-1 05-列表项的显示-1 06-删除代码的封装-1 07-封装通用的表格选项-1 08-功能预览-1 09-vue...

    Maven权威指南 很精典的学习教程,比ANT更好用

    约定优于配置(Convention Over Configuration) 1.3. 一个一般的接口 1.4. 基于Maven插件的全局性重用 1.5. 一个“项目”的概念模型 1.6. Maven是Ant的另一种选择么? 1.7. 比较Maven和Ant 1.8. 总结 2. ...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,...

    AnnouncementsPortlet:JSR-286 Portlet在uPortal中实施公告

    hibernate.connection.password =ENC(9ffpQXJi/EPih9o+ Xshm5g ==) 使用UP_JASYPT_KEY环境变量指定加密密钥。 依存关系 这些依赖项预计将由整体uPortal加载: Font Awesome 4,上次使用Font Awesome 4.7.0测试 ...

Global site tag (gtag.js) - Google Analytics