Получить автоматически обнаруженный диалект гибернации

Hibernate имеет возможность автоматически определять hibernate.dialect. Как я могу получить это автоматически определенное значение? Мне не удалось найти никакой информации по этому поводу.


person user101442    schedule 15.10.2009    source источник


Ответы (2)


Вы можете получить его из SessionFactory, но вы нужно будет преобразовать его в SessionFactoryImplementor первый:

SessionFactory sessionFactory = ...; // you should have this reference
Dialect dialect = ((SessionFactoryImplementor) sessionFactory).getDialect();

Вышеупомянутое будет извлекать экземпляр диалекта, который в настоящее время используется фабрикой сеанса, который является автоматически обнаруженным экземпляром, если он не был явно указан через свойства.

person ChssPly76    schedule 15.10.2009

Из Hibernate 5.2+ наиболее подходящий способ получить диалект:

EntityManager em ...
Session session = em.unwrap(Session.class);
SessionFactory sessionFactory = session.getSessionFactory();
Dialect dialect = ((SessionFactoryImplementor) sessionFactory).getJdbcServices().getDialect();
person MhagnumDw    schedule 28.03.2018