检索自动检测到的休眠方言

时间:2009-10-15 11:58:27

标签: hibernate dialect

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

2 个答案:

答案 0 :(得分:19)

您可以从SessionFactory检索它,但您需要先将其投放到SessionFactoryImplementor

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

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

答案 1 :(得分:2)

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

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