Properties

Hibernate 6.4 supports a range of configuration properties that can be utilized within Spring Boot applications. Below is a categorized list of some commonly used properties:​

General Settings

  • hibernate.dialect: Specifies the SQL dialect.

    • Example: org.hibernate.dialect.MySQL8Dialect

  • hibernate.show_sql: Enables logging of SQL statements.

    • Example: true

  • hibernate.format_sql: Formats the SQL statements in the log.

    • Example: true

  • hibernate.hbm2ddl.auto: Controls the automatic schema generation.

    • Options: validate, update, create, create-drop, none

JDBC and Connection Settings

  • hibernate.connection.driver_class: JDBC driver class.

    • Example: com.mysql.cj.jdbc.Driver

  • hibernate.connection.url: JDBC connection URL.

    • Example: jdbc:mysql://localhost:3306/yourdb

  • hibernate.connection.username: Database username.

    • Example: root

  • hibernate.connection.password: Database password.

    • Example: password

  • hibernate.connection.pool_size: Specifies the size of the connection pool.

    • Example: 10

Caching

  • hibernate.cache.use_second_level_cache: Enables second-level caching.

    • Example: true

  • hibernate.cache.region.factory_class: Specifies the cache region factory.

    • Example: org.hibernate.cache.jcache.JCacheRegionFactory

  • hibernate.cache.provider_class: Specifies the cache provider class.

    • Example: org.ehcache.jsr107.EhcacheCachingProvider

Batch Processing

  • hibernate.jdbc.batch_size: Defines the batch size for JDBC batch updates.

    • Example: 30

  • hibernate.order_inserts: Orders insert statements for batch processing.

    • Example: true

  • hibernate.order_updates: Orders update statements for batch processing.

    • Example: true

Logging and Statistics

  • hibernate.generate_statistics: Enables generation of statistics.

    • Example: true

  • hibernate.use_sql_comments: Adds comments to SQL statements.

    • Example: true

spring.jpa.show-sql: true  # Prints SQL queries generated by JPA to the console.
spring.jpa.properties.hibernate.show_sql: true  # Ensures Hibernate also logs SQL statements (similar to above, sometimes needed for consistency).
spring.jpa.properties.hibernate.format_sql: true  # Formats the SQL output for better readability.
spring.jpa.properties.hibernate.type: TRACE  # Logs the SQL data types used in queries at TRACE level.
logging.level.org.hibernate.type.descriptor.sql.BasicBinder: TRACE  # Logs the binding of values to SQL query parameters (e.g., ? placeholders).
logging.level.org.hibernate.orm.jdbc.bind: TRACE  # Logs JDBC bind parameter values, useful for debugging actual data being sent to DB.

Multi-Tenancy

  • hibernate.multiTenancy: Specifies the multi-tenancy strategy.

    • Options: NONE, DATABASE, SCHEMA, DISCRIMINATOR

  • hibernate.tenant_identifier_resolver: Specifies the tenant identifier resolver class.

    • Example: com.example.TenantIdentifierResolver

Envers (Auditing)

  • org.hibernate.envers.audit_table_suffix: Suffix for audit tables.

    • Example: _AUD

  • org.hibernate.envers.revision_field_name: Name of the revision field.

    • Example: REV

  • org.hibernate.envers.revision_type_field_name: Name of the revision type field.

    • Example: REVTYPE

Last updated