Конфигурация аннотации Hibernate 4

Я пытаюсь использовать Hibernate 4 только с аннотациями и hibernate.cfg.xml файл. Я сделал свою собственную аннотацию и использую отражение, чтобы добавить это в конфигурацию. Я могу использовать Hibernate 4 таким образом, но моя конфигурация создается с использованием устаревшего метода.

final Configuration configuration = new Configuration();
final Reflections reflections = new Reflections(Item.class.getPackage().getName());
final Set<Class<?>> classes = reflections.getTypesAnnotatedWith(Entity.class);
for (final Class<?> clazz : classes) {
    configuration.addAnnotatedClass(clazz);
}
return configuration.configure().buildSessionFactory();

(Устаревший код: buildSessionFactory();).

Даже документация hibernate 4 показывает, как построить конфигурацию таким образом.

Если я попытаюсь использовать новый метод (buildSessionFactory(ServiceRegistry)Я не получаю тот же результат, и кажется, что много ненужного кода, чтобы делать именно то, что делает устаревший метод в любом случае. Однако я не хочу продолжать использовать этот стиль, потому что я все равно не люблю использовать устаревший код.

У меня вопрос: как правильно настроить Hibernate 4 из файла конфигурации, как описано выше? Кажется, я просто вызываю ошибки и сталкиваюсь с ненужными трудностями.

1 ответ

Решение

Модифицированный код будет выглядеть так:

  final Configuration configuration = new Configuration();
    final Reflections reflections = new Reflections(Item.class.getPackage().getName());
    final Set<Class<?>> classes = reflections.getTypesAnnotatedWith(Entity.class);
    for (final Class<?> clazz : classes) {
        configuration.addAnnotatedClass(clazz);
    }
            ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings
(configuration.getProperties()).buildServiceRegistry();        

    return configuration.buildSessionFactory(serviceRegistry);

Вы можете проверить следующие ссылки для информации: HHH-6183 и HHH-2578.

Другие вопросы по тегам