检索自动检测到的Hibernate方言

13
Hibernate有自动检测hibernate.dialect的选项。我如何检索该自动检测的值?我找不到任何相关信息。
2个回答

20

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

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

以上代码将检索由会话工厂当前使用的方言实例,如果没有通过属性显式指定,则为自动检测实例。


7

从 Hibernate 5.2+ 开始,获取 Dialect 最合适的方式是:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接