# 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默认的，可以设置以下属性：

```
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)。
