gpt4 book ai didi

java - 使用 Hibernate/Spring 生成数据库更新脚本

转载 作者:IT老高 更新时间:2023-10-28 13:45:58 25 4
gpt4 key购买 nike

我有一个项目,我们曾经依靠 hibernate 来更新数据库的更改(hibernate.hbm2ddl.auto=update)......即使在产品上......我正在迁移它以使用 liquibase。

我唯一担心的是,不是每个人都是我团队中的 sql 专家,所以我正在寻找一种简单的方法来生成 hibernate 在更新数据库时会完成的 sql 脚本。

我们都在使用 Intellij IDEA,但找不到这个功能。

你知道有什么工具可以做到这一点吗?

谢谢

最佳答案

要实际显示 Hibernate 从映射中生成的脚本,您可以:

  • 按照 Andrei I 的建议,将这两行添加到您的 application.properties:

    spring.jpa.hibernate.ddl-auto=validate
    logging.level.org.hibernate.tool.hbm2ddl=DEBUG

Hibernate 4.3 的来源:SchemaUpdate.java

  • 或使用以下代码手动生成这些脚本:

    LocalSessionFactoryBuilder sessionFactory = new LocalSessionFactoryBuilder(dataSource);
    sessionFactory.scanPackages("your.package.containing.entities");
    Dialect dialect = new MySQL5Dialect(); // select your dialect
    DatabaseMetadata metadata = new DatabaseMetadata(dataSource.getConnection(), dialect, sessionFactory);
    List<SchemaUpdateScript> scripts = sessionFactory.generateSchemaUpdateScriptList(dialect, metadata);

    Formatter formatter = FormatStyle.DDL.getFormatter();
    for (SchemaUpdateScript script : scripts) {
    System.err.println(formatter.format(script.getScript()) + ";");
    }

您甚至可以在@Test 中添加此代码,如 here 所述.

祝你好运!

关于java - 使用 Hibernate/Spring 生成数据库更新脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19942217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com