74.5 Configure JPA properties
Spring Data JPA already provides some vendor-independent configuration options (e.g. for SQL logging) and Spring Boot exposes those, and a few more for hibernate as external configuration properties. The most common options to set are:
spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.hibernate.naming.physical-strategy=com.example.MyPhysicalNamingStrategy spring.jpa.database=H2 spring.jpa.show-sql=true
The ddl-auto
setting is a special case in that it has different defaults depending on whether you are using an embedded database (create-drop
) or not (none
). In addition all properties in spring.jpa.properties.*
are passed through as normal JPA properties (with the prefix stripped) when the local EntityManagerFactory
is created.
Spring Boot provides a consistent naming strategy regardless of the Hibernate generation that you are using. If you are using Hibernate 4, you can customize it using spring.jpa.hibernate.naming.strategy
; Hibernate 5 defines a Physical
and Implicit
naming strategies: Spring Boot configures SpringPhysicalNamingStrategy
by default. This implementation provides the same table structure as Hibernate 4. If you’d rather use Hibernate 5’s default instead, set the following property:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
See HibernateJpaAutoConfiguration
and JpaBaseConfiguration
for more details.