编辑:问题解决了!在 YAML 配置中执行此操作目前有效:(Dropwizard 0.7.1)
database:
properties:
hibernate.dialect: org.hibernate.dialect.MySQLDialect
hibernate.hbm2ddl.auto: create
(来自这个答案)
老答案:
这是我目前正在使用的:一个调用hibernate的SchemaExport将架构导出到SQL文件或修改数据库的类。我只是在更改我的实体之后,在运行应用程序之前运行它。
public class HibernateSchemaGenerator {
public static void main(String[] args) {
Configuration config = new Configuration();
Properties properties = new Properties();
properties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
properties.put("hibernate.connection.url", "jdbc:mysql://localhost:3306/db");
properties.put("hibernate.connection.username", "user");
properties.put("hibernate.connection.password", "password");
properties.put("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
properties.put("hibernate.show_sql", "true");
config.setProperties(properties);
config.addAnnotatedClass(MyClass.class);
SchemaExport schemaExport = new SchemaExport(config);
schemaExport.setOutputFile("schema.sql");
schemaExport.create(true, true);
}
}
我以前不知道休眠工具。所以这个代码示例可以在服务初始化中使用,就像hbm2ddl.auto = create
.
我目前只是通过运行类(来自 eclipse 或 maven)来生成和查看输出 SQL 来使用它。