ExceptionInInitialize Access to DialectResolutionInfo cannot be null when 'hibernate.dialect'not set

来源:互联网 发布:挑战韩网络加速器 编辑:程序博客网 时间:2024/06/06 17:06


在使用hibernate时,获取SessionFactory报一下错误


org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not setat org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:104)at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:71)at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:209)at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887)at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845)at com.ssh.registration.util.HibernateUtil.<clinit>(HibernateUtil.java:17)at com.ssh.registration.service.UserManager.exists(UserManager.java:26)at org.apache.jsp.RegisterDeal_jsp._jspService(RegisterDeal_jsp.java:100)at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2549)at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2538)at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:619)

我在获得sessionFactory是从自己封装的工具类HibernateUtil类中获得的,HibernateUtil类的代码如下:


package com.ssh.registration.util;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;public class HibernateUtil {// static 就是单例了private static SessionFactory sf;private static Configuration configuration = new Configuration();private static ServiceRegistry serviceRegistry;static {serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();sf = configuration.buildSessionFactory(serviceRegistry);}public static SessionFactory getSessionFactory() {return sf;}}

最后经过测试,终于发现,是我粗心漏写了一行造成的,


漏写代码如下:


configuration.configure();



完整的HibernateUtil代码如下:


package com.ssh.registration.util;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;public class HibernateUtil {// static 就是单例了private static SessionFactory sf;private static Configuration configuration = new Configuration();private static ServiceRegistry serviceRegistry;static {configuration.configure();serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();sf = configuration.buildSessionFactory(serviceRegistry);}public static SessionFactory getSessionFactory() {return sf;}}



再次运行程序,发现正常了!!












阅读全文
0 0
原创粉丝点击