您的位置:首页 > 其它

Hibernate4.3.5之"hibernate.dialect" not set问题

2014-07-22 15:30 183 查看
在利用Hibernate(4.3.5)用户手册中提供的HibernateUtil帮助类产生的SessionFactory实例进行数据库访问时,会产生

Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set异常(配置文件用的是hibernate.cfg.xml)

以下是Hibernate用户手册中的HibernateUtil帮助类(而且它的buildSessionFactory()方法中还缺少了return 语句)

import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

private static final SessionFactory sessionFactory = buildSessionFactory();

private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
new Configuration().configure().buildSessionFactory(
new StandardServiceRegistryBuilder().build() );
}
catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}

public static SessionFactory getSessionFactory() {
return sessionFactory;
}

}


根据网上针对"hibernate.dialect" not set问题的解决方法,可将该帮助类稍作修改,如下:

import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
public class HibernateUtil
{
private static final SessionFactory sessionFactory = buildSessionFactory();

private static SessionFactory buildSessionFactory() {
try {
Configuration configuration = new Configuration().configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
return configuration.buildSessionFactory(serviceRegistry);
}
catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}

public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
如上修改后,当你cfg文件正确配置的前提下,再利用该类获取的SessionFactory进行相关操作时应该不会再报上述异常了(在H4.3.5版上做过简单测试)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐