[英]Liquibase hibernate tables update from java code
您能否举一些例子,说明如何使用休眠实体类和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();
}
}
}
您不能这样做,因为liquibase对冬眠一无所知。
但是您可以通过set属性使用休眠模式更新数据库
hibernate.hbm2ddl.auto=update
或者您可以将ddl生成到文件中
java -cp hibernate_classpaths org.hibernate.tool.hbm2ddl.SchemaExport options mapping_files
使用此工具,您可以将ddl导出到文件并手动执行脚本或自动执行脚本(mapping_files是可选的)
PS:liquibase是为声明性更新标记而开发的,不适用于与hibernate一起使用
可能这个链接会有所帮助
http://www.baeldung.com/liquibase-refactor-schema-of-java-app
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.