Получение имени из спящего режима для класса - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть проект с поддержкой XML-config.Теперь мы хотим добавить конфигурацию hibernate для сущностей с помощью аннотации.Кажется возможным и работает (поправьте меня, если я ошибаюсь).Проблема в том, что наша система

private String entityName() {
    String name = null;
    try {
        String longName = getDaoFactory().getSessionFactory().getClassMetadata(entityClass).getEntityName();
        name = longName.substring(longName.lastIndexOf(".") + 1);
    } catch (Exception ex) {
        log.error("Exception getting name from hibernate for class: " + entityClass);
        name = null;
    }
    return name;
}

Этот метод хорошо работает для сущностей с xml-config, но как получить имя для сущности, которая настраивается с помощью аннотации?

Спасибо взаранее за любую рекомендацию и предложение:)

UPD:

из метода фабрики сеанса инициализации:

Configuration configuration = new Configuration(); 
configuration.addResource("resources/administrator/queries.hbm.xml");
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration
        .getProperties());
SessionFactory sessionFactory = configuration.buildSessionFactory(builder.build());
setSessionFactory(sessionFactory);
return configuration;

1 Ответ

0 голосов
/ 19 декабря 2018

Я создал Фабрику сессий вот так.

public static SessionFactory buildSessionFactoryFromAnnotatedClasses(){
    StandardServiceRegistry standardRegistry =
        new StandardServiceRegistryBuilder().applySettings(// pass org.hibernate.cfg.Configuration object here)
            .getProperties()).build(); // Configuration object has properties

    MetadataSources sources = new MetadataSources(standardRegistry);
    sources.addAnnotatedClass(MyClass.class);// MyClass is your java annotated class
    Metadata metaData = sources.getMetadataBuilder().build();
    return metaData.getSessionFactoryBuilder().build();
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...