目前,我在中使用@SpringBootApplication具有以下属性的默认注释application.properties:
@SpringBootApplication
application.properties
spring.datasource.url=jdbc:mysql://localhost/dbname spring.datasource.username=X spring.datasource.password=X spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.hibernate.naming_strategy=my.package.CustomNamingStrategy
从JPA 2.1开始,我应该可以使用这些javax.persistence.schema- generation.*属性,但是在我的application.properties中设置它们似乎无效。
javax.persistence.schema- generation.*
我见过的例子是这样那丝了一大堆额外的豆子,但他们没有使用MySQL。无论如何,要做到这一点,我需要配置spring现在正在照顾的许多选项。
我的目标是:
我不想:
库版本:
hibernate : 4.3.11.FINAL spring framework : 4.2.5.RELEASE spring-boot : 1.3.3.RELEASE spring-data-jpa : 1.10.1.RELEASE // for querydsl 4 support spring-data-commons: 1.12.1.RELEASE // for querydsl 4 support
(使用gradle,而不是maven)
啊,在我发布此问题后,立即有一部分spring数据文档引起了我的注意:
73.5配置JPA属性 另外,在创建本地EntityManagerFactory时,spring.jpa.properties。*中的所有属性均作为常规JPA属性(带前缀)被传递。
因此,要回答我自己的问题:在javax.persistence属性的前面加上spring.jpa.properties:
spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql
完成此操作后,将在项目根目录中自动生成模式文件。