Подтвердить что ты не робот

Создание схемы в спящем режиме-спящий режим

Я следил за учебником для dropwizard и спящего режима без проблем. Теперь у меня есть нетривиальные аннотации в моих сущностях, и я хотел бы, чтобы hibernate генерировал таблицы для меня и т.д. Итак, как я могу изменить конфигурацию спящего режима? Могу я дать ему hibernate.cfg.xml? Если возможно, мне нужно снова установить соединение?

Я нашел этот PR, но, похоже, он пока не находится в общедоступном выпуске (в баночках нет hibernateBundle.configure)

Но, может быть, я искал неправильную вещь. Пока что я просто пытаюсь установить hibernate.hbm2dll.auto. В конце концов, может быть другой способ включить создание таблицы спящего режима в Dropwizard... Итак, любая помощь?

Спасибо.


Изменить: я подошел к проблеме под другим углом, чтобы явно создать схему вместо использования hbm2ddl.auto. См. Предлагаемый ответ.

4b9b3361

Ответ 1

Изменить: проблема решена! Выполнение этого в конфигурации YAML в настоящее время работает: (Dropwizard 0.7.1)

database:
    properties:
        hibernate.dialect: org.hibernate.dialect.MySQLDialect
        hibernate.hbm2ddl.auto: create

(from этот ответ)


Старый ответ:

Это то, что я сейчас использую: класс, который вызывает 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.