org.hibernate.cfg.Configuration добавление пакетов, в которых находятся аннотированные классы

Я создаю таблицы базы данных с помощью следующего кода:

public void createSchema() {
    Configuration configuration = new Configuration();
    configuration.setProperty("hibernate.connection.driver_class", driverClassName);
    configuration.setProperty("hibernate.connection.url", url);
    configuration.setProperty("hibernate.connection.username", username);
    configuration.setProperty("hibernate.connection.password", password);
    configuration.setProperty("hibernate.dialect", hibernateDialect);

    configuration.addAnnotatedClass(Base.class);
    configuration.addAnnotatedClass(User.class);
    logger.info("begin database schema creation =========================");
    new SchemaUpdate(configuration).execute(true, true);
    logger.info("end database schema creation ===========================");
}

Здесь я указал имена аннотированных классов методом configuration.addAnnotatedClass. Если у меня будет 50 классов, то это будет очень грязно.

Есть ли способ указать имена пакетов для сканирования аннотированных классов?


person Tapas Bose    schedule 12.05.2012    source источник


Ответы (2)


Я не знаком со многими изменениями в Hibernate 4, но в Hibernate 3 сделать это было невозможно. Я рекомендую использовать отличная поддержка Hibernate в Spring, которая позволяет сканировать пакеты на наличие сущностей, как вы просите, и может управлять многими другими вещами для вас, если вы запустите свое приложение в контейнере Spring.

person Ryan Stewart    schedule 12.05.2012

Вы можете использовать Reflections для загрузки всех объектов, которые аннотированы как @Entity, и добавить их в конфигурацию гибернации. Проверьте ссылку на пример кода Hibernate 4 Annotation Configuration

Мэдди

person Maddy    schedule 06.10.2012