【问题标题】:Problem generating ddl in spring data jpa application在 Spring Data JPA 应用程序中生成 ddl 的问题
【发布时间】:2019-07-23 14:15:49
【问题描述】:

我们有一个工作的 Spring Boot (2.1.3) 应用程序。对于本地开发,我们使用

  jpa:
     hibernate:
        ddl-auto: create-drop

现在我们需要为我们的 db-guys 生成一个 ddl 文件(最好在构建期间)。我将尝试设置这些附加属性:

  javax:
    persistence:
      schema-generation:
        create-source: metadata
        action: create
        create-target: create.sql 

有了这些设置(ddl-auto 更改为 none),我启动了我的应用程序。虽然它开始正常,但没有找到“create.ddl”。

因为我希望在构建期间生成 ddl 文件,所以我添加了一个测试:

@RunWith(SpringRunner.class)
@DataJpaTest
@TestPropertySource(locations = "classpath:/testproperties/ddlgenerate.yml")
@AutoConfigureTestDatabase(replace = Replace.NONE)
public class GenerateDDL {

    @Autowired
    private EntityManager em;

    @Test
    public void generateDDL(){
        em.close();
        em.getEntityManagerFactory().close();
    }

}

我在某处读到应该在 EntityManager 的实例化期间生成 ddl?! 引用的classpath:/testproperties/ddlgenerate.yml 只包含

spring:
  jpa:
    properties:
      javax:
        persistence:
          schema-generation:
            create-source: metadata
            action: create
            create-target: create.sql

日志表明属性已加载。测试是绿色的,但仍然没有 ddl 文件。

那么如何获取生成的 ddl 文件(最好在构建期间)?

【问题讨论】:

    标签: jpa spring-data-jpa ddl


    【解决方案1】:

    问题是@TestPropertySource 不支持 yaml 文件作为源。将 yaml 转换为属性文件后,一切正常。

    【讨论】:

      猜你喜欢
      • 2013-10-12
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 2020-10-19
      • 2018-09-17
      • 2023-03-16
      • 2012-05-25
      • 2019-03-25
      相关资源
      最近更新 更多