Liquibase hibernate表从java代码更新

时间:2016-06-06 12:05:59

标签: java hibernate liquibase

请您举几个例子,说明如何使用hibernate实体类和liquibase从java代码更新数据库表。

这样的东西,但是对于带注释的类

Connection connection = null;

try {
    connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/dvdrental", "postgres", "admin");
    Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(connection));
    Liquibase liquibase = new Liquibase("C:/changelog.xml", new FileSystemResourceAccessor(), database);
    liquibase.update(new Contexts());
} catch (SQLException | LiquibaseException e) {
    e.printStackTrace();
} finally {
    if (connection != null) {
        try {
            connection.rollback();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

你不能这样做因为liquibase对hibernate一无所知。

但您可以通过set属性

使用hibernate更新数据库

hibernate.hbm2ddl.auto=update

或者您可以将ddl生成到文件

java -cp hibernate_classpaths org.hibernate.tool.hbm2ddl.SchemaExport options mapping_files

使用此工具,您可以将ddl导出到文件并手动执行脚本或自动执行(mapping_files是可选的)

P.S:liquibase是为更新的声明性标记而开发的,而不是与hibernate一起使用

可能会对此链接有所帮助

http://www.baeldung.com/liquibase-refactor-schema-of-java-app