CAP*_*OCK 6 schema hibernate spring-data spring-boot
我正在使用Spring Boot 1.3.5
和Hibernate 5.1
.告诉Hibernate调用要使用的模式的属性是
spring.jpa.properties.hibernate.default_schema
Run Code Online (Sandbox Code Playgroud)
然而,值(模式名称,让我们说开发),不知何故,在创建表时,它不会被拾取spring.jpa.hibernate.ddl-auto
.让它工作的唯一方法(至少对我的情况有效)是每个实体类都有定义的模式名称
@Table(name = "some_table", schema = "development")
Run Code Online (Sandbox Code Playgroud)
如果可以在spring引导应用程序属性中定义的模式中创建表,那将是很好的(可以作为ENV传递给不同的环境).如果未在@Table
注释中指定模式,则表将在公共模式中创建.
有没有办法为表设置模式而不在表注释中设置它,但只有属性文件配置?
一年后,现在的应用演变,我使用Spring Boot 1.5.4
和Hibernate 5.1.5
用Postgres 9.6
.不确定以前版本是否存在问题,但现在它可以正常工作.
yaml
配置文件:
spring:
datasource:
driver-class-name: org.postgresql.Driver
platform: postgresql
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQL94Dialect
default_schema: SCHEMA_NAME
Run Code Online (Sandbox Code Playgroud)
虽然使用9.6,PostgreSQL94Dialect可以用于9.4及更高版本,因为对于给定的Hibernate版本没有特定的PostgreSQL96Dialect.
有了这个,就不需要在@Table
注释中指定模式.
2018年10月更新
请参阅Hibernate的存储库以获取支持的方言,并将git标签设置为您的Hibernate版本:https://github.com/hibernate/hibernate-orm/tree/master/hibernate-core/src/main/java/org/hibernate/dialect
归档时间: |
|
查看次数: |
13857 次 |
最近记录: |