企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 74.5 配置JPA属性 Spring Data JPA已经提供了一些独立的配置选项(比如,针对SQL日志),并且Spring Boot会暴露它们,针对hibernate的外部配置属性也更多些,最常见的选项如下: ```java 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 ``` `ddl-auto`配置是个特殊情况,它的默认设置取决于是否使用内嵌数据库(是则默认值为`create-drop`,否则为`none`)。当本地`EntityManagerFactory`被创建时,所有`spring.jpa.properties.*`属性都被作为正常的JPA属性(去掉前缀)传递进去了。 Spring Boot提供一致的命名策略,不管你使用什么Hibernate版本。如果使用Hibernate 4,你可以使用`spring.jpa.hibernate.naming.strategy`进行自定义;Hibernate 5定义一个`Physical`和`Implicit`命名策略:Spring Boot默认配置`SpringPhysicalNamingStrategy`,该实现提供跟Hibernate 4相同的表结构。如果你情愿使用Hibernate 5默认的,可以设置以下属性: ```text spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl ``` 具体详情可参考[HibernateJpaAutoConfiguration](https://github.com/spring-projects/spring-boot/tree/v1.4.1.RELEASE/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.java)和[JpaBaseConfiguration](https://github.com/spring-projects/spring-boot/tree/v1.4.1.RELEASE/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java)。