13

Hibernate 可以选择自动检测hibernate.dialect. 如何检索该自动检测到的值?我无法找到有关此的任何信息。

4

2 回答 2

20

您可以从SessionFactory中检索它,但您需要先将其转换为SessionFactoryImplementor

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

以上将检索会话工厂当前使用的方言实例,如果没有通过属性明确指定,则该实例是自动检测到的实例。

于 2009-10-15T15:59:16.450 回答
6

从 Hibernate 5.2+ 获取方言的最合适方法是:

EntityManager em ...
Session session = em.unwrap(Session.class);
SessionFactory sessionFactory = session.getSessionFactory();
Dialect dialect = ((SessionFactoryImplementor) sessionFactory).getJdbcServices().getDialect();
于 2018-03-28T17:17:02.517 回答