79.5 配置JPA属性
Spring Data JPA已经提供了一些独立的配置选项(比如,针对SQL日志),并且Spring Boot会暴露它们,针对Hibernate的外部配置属性也更多些。它们中的一些会通过上下文,被自动探测到,所以你不需要设置它们。
spring.jpa.hibernate.ddl-auto
比较特殊。因为根据运行条件的不同,它会有不同的默认值。如果使用嵌入式数据库,而没有模式管理器(如Liquibase或Flyway)处理数据源
,则默认为create-drop
。在所有其他情况下,它默认为none
。使用的方言也会基于目前的数据源
被自动地探测到。但是如果你想要在启动时清楚明白,避开这种选择,你可以自己设置spring.jpa.database
。
注 指定一个数据库
是配置Hibernate方言的一种很好的方式。多个数据库有多种方言,这可能不符合你的需求。在那种情况下,你既可以把spring.jpa.database
设置为default
,来让Hibernate搞定一切,也可以使用spring.jpa.database-platform
属性来设置方言。
最常见的选项如下:
此外,当本地的EntityManagerFactory
被创建时,spring.jpa.properties.*
里的所有属性会作为正常的JPA属性(前缀除去)被传递。
注 如果需要对Hibernate属性应用高级定制,可以考虑注册一个HibernatePropertiesCustomizer
bean。它将在创建EntityManagerFactory
之前被调用。这优先于自动配置所应用的任何内容。
最后更新于