編集:問題は解決しました!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 を生成および確認するだけで使用しています。