【发布时间】:2019-04-17 14:48:10
【问题描述】:
是否有可能让用于创建模式的自定义 sql 与 ddl 自动生成共存?我可以创建一个schema.sql,它运行良好,但它优先于 ddl 自动生成并防止自动生成任何实体。我想用schema.sql 创建我的视图,但我的表是自动生成的。我可以在data.sql 中创建视图,这是一种解决方法,但从语义上讲,在那里创建视图没有意义。
【问题讨论】:
标签: hibernate spring-boot jpa
是否有可能让用于创建模式的自定义 sql 与 ddl 自动生成共存?我可以创建一个schema.sql,它运行良好,但它优先于 ddl 自动生成并防止自动生成任何实体。我想用schema.sql 创建我的视图,但我的表是自动生成的。我可以在data.sql 中创建视图,这是一种解决方法,但从语义上讲,在那里创建视图没有意义。
【问题讨论】:
标签: hibernate spring-boot jpa
根据文档,不能同时使用自动生成和schema.sql:
在基于 JPA 的应用程序中,您可以选择让 Hibernate 创建模式或使用 schema.sql,但不能同时使用这两种方法。如果您使用 schema.sql,请确保禁用 spring.jpa.hibernate.ddl-auto。
所以,你可以保留自动生成,data.sql,然后配置 Flyway 来创建视图。
对于 Flyway 配置,在类路径中加载 org.flywaydb:flyway-core:
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>5.2.4</version>
</dependency>
然后使用 CREATE VIEW... 语句在 /resources/db/migration/V1__createviews.sql 上创建您的第一个迁移脚本。
【讨论】: