Hibernate 配置

2024 年 8 月 29 日 | 阅读 3 分钟

由于Hibernate可以在不同的环境中运行,因此它需要广泛的配置参数。 这些配置包含为Java类提供不同功能的映射信息。 通常,我们在配置文件中提供与数据库相关的映射。 Hibernate允许在XML文件(例如hibernate.cfg.xml)或属性文件(例如hibernate.properties)中提供配置。

Configuration类的一个实例允许为应用程序指定属性和映射。 该类还构建一个不可变的SessionFactory

我们可以通过直接实例化它并在配置文件中指定映射来获取Configuration类实例。 如果映射文件存在于类路径中,请使用addResource()方法。

让我们看一个示例,在XML文件和属性文件中提供配置。

基于XML的配置

属性文件配置

Hibernate配置的属性

Hibernate JDBC属性

属性描述
hibernate.connection.driver_class它表示JDBC驱动程序类。
hibernate.connection.url它表示JDBC URL。
hibernate.connection.username它表示数据库用户名。
hibernate.connection.password它表示数据库密码。
Hibernate.connection.pool_size它表示连接池中可用的最大连接数。

Hibernate数据源属性

属性描述
hibernate.connection.datasource它表示数据源JNDI名称,Hibernate使用它来进行数据库属性设置。
hibernate.jndi.url这是可选的。 它表示JNDI提供者的URL。
hibernate.jndi.class这是可选的。 它表示JNDI InitialContextFactory的类。

Hibernate配置属性

属性描述
hibernate.dialect它表示Hibernate中用于为特定关系数据库生成SQL语句的数据库类型。
hibernate.show_sql它用于将执行的SQL语句显示到控制台。
hibernate.format_sql它用于在日志和控制台中打印SQL。
hibernate.default_catalog它使用给定的目录限定生成的SQL中非限定的表名。
hibernate.default_schema它使用给定的模式限定生成的SQL中非限定的表名。
hibernate.session_factory_nameSessionFactory接口在创建后自动绑定到JNDI中的此名称。
hibernate.default_entity_mode它为从此SessionFactory打开的所有会话设置实体表示的默认模式
hibernate.order_updates它根据更新的主键对SQL更新进行排序。
hibernate.use_identifier_rollback如果启用,则在删除对象时,生成的标识符属性将重置为默认值。
hibernate.generate_statistics如果启用,Hibernate将收集对性能调优有用的统计信息。
hibernate.use_sql_comments如果启用,Hibernate会在SQL内部生成注释。 它用于使调试更容易。

Hibernate缓存属性

属性描述
hibernate.cache.provider_class它表示自定义CacheProvider的类名。
hibernate.cache.use_minimal_puts它用于优化二级缓存。 它最大限度地减少写入,但代价是更频繁的读取。
hibernate.cache.use_query_cache它用于启用查询缓存。
hibernate.cache.use_second_level_cache它用于禁用二级缓存,默认情况下,为指定了映射的类启用二级缓存。
hibernate.cache.query_cache_factory它表示自定义QueryCache接口的类名。
hibernate.cache.region_prefix它指定用于二级缓存区域名称的前缀。
hibernate.cache.use_structured_entries它有助于Hibernate以更人性化的格式将数据存储在二级缓存中。

Hibernate事务属性

属性描述
hibernate.transaction.factory_class它表示与Hibernate事务API一起使用的TransactionFactory的类名。
hibernate.transaction.manager_lookup_class它表示TransactionManagerLookup的类名。 启用JVM级缓存时需要它。
hibernate.transaction.flush_before_completion如果启用,在事务完成前阶段,会话将被自动刷新。
hibernate.transaction.auto_close_session如果启用,在事务完成后阶段,会话将被自动关闭。

其他Hibernate属性

属性描述
hibernate.connection.provider_class它表示自定义ConnectionProvider的类名,该类为Hibernate提供JDBC连接。
hibernate.connection.isolation它用于设置JDBC事务隔离级别。
hibernate.connection.autocommit它为JDBC连接池启用自动提交。 但是,不建议这样做。
hibernate.connection.release_mode它指定Hibernate应该何时释放JDBC连接。
hibernate.current_session_context_class它为“当前”会话的作用域提供自定义策略。
hibernate.hbm2ddl.auto它在创建SessionFactory时自动在数据库中生成模式。
下一个主题Hibernate 教程