在偶然一次运行hibernate测试类的时候,出现如下错误,Exception in thread "main" org.hibernate.HibernateException: Hibernate Dialect must be explicitly set,但是我明明在配置文件中配置了啊?
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
这是因为我在代码中使用了这种方式
SessionFactory sessionFactory = new Configuration().buildSessionFactory();
来获取sessionFactory,但是此种方式并不适用于使用xml配置文件的方式,所以将其改为
new Configuration().configure().buildSessionFactory();即可,在调用configure()方法的时候,我们深入源码可以看到
public Configuration configure()throws HibernateException
{
configure("/hibernate.cfg.xml");
return this;
}
该方法调用了使用默认名称的xml配置文件,所以就可以读取到了。
本文介绍了一种常见的Hibernate异常:HibernateDialect未被显式设置的问题,并给出了具体的解决方案,通过调整SessionFactory创建方式,确保配置文件正确加载。
964

被折叠的 条评论
为什么被折叠?



