Hibernate可以选择自动检测hibernate.dialect
。如何检索自动检测值?我无法找到任何相关信息。
答案 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();