1
Exception in thread "main" org.hibernate.HibernateException: 'hibernate.dialect' must be set when no Connection available
at org.hibernate.dialect.resolver.DialectFactory.buildDialect(DialectFactory.java:106)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:152)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2833)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2829)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840)
at Test.main(Test.java:17)
解决:Configuration con = new Configuration();改为:
Configuration con = new Configuration().configure();
因为configure()指定一个cfg.xml文件,从文件中加载hibernate配置
2
Exception in thread "main" org.hibernate.MappingException: Could not instantiate id generator [entity-name=com.hsp.domain.Employee]
at org.hibernate.id.factory.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:118)
at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:193)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:246)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1842)
at Test.main(Test.java:17)
Caused by: org.hibernate.MappingException: Could not interpret id generator strategy [Increment]
at org.hibernate.id.factory.DefaultIdentifierGeneratorFactory.getIdentifierGeneratorClass(DefaultIdentifierGeneratorFactory.java:137)
at org.hibernate.id.factory.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:108)
... 4 more
因为数据库方言不支持Increment这样用,如果在Oracle中使用Sequence即可,MySQL中应该改为 native
3.
xxx is not mapped
说明HQL中写错了,或者hbm.xml中写错了
需要把HQL中from后面的列名改为hbm.xml映射的对象名称
4.
org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.ds.dao.SourcedirDAO.getRoot(SourcedirDAO.java:226)
at org.ds.util.XMLHandler.createXMLDocument(XMLHandler.java:72)
at org.ds.util.XMLHandler.createXMLFile(XMLHandler.java:119)
at org.ds.util.GenXMLPlugin.init(GenXMLPlugin.java:48)
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubImpl.java:1099)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:975)
at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:954)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:893)
at weblogic.servlet.internal.ServletStubImpl.reloadServlet(ServletStubImpl.java:804)
at weblogic.servlet.internal.ServletStubImpl.checkForReload(ServletStubImpl.java:762)
at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:602)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:406)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at org.ds.util.MyFilter.doFilter(MyFilter.java:121)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at org.ds.util.SysLogFilter.doFilter(SysLogFilter.java:56)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7053)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
Caused by: java.sql.SQLException: Io 异常: Software caused connection abort: recv failed
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:977)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1060)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:839)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1132)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3361)
at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:131)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
... 37 more
org.hibernate.QueryParameterException: could not locate named parameter [mdfileid]java.lang.NullPointerException
at org.ds.dao.MetadataDAO.findByMdFileId(MetadataDAO.java:233)
at org.ds.directoryView.action.DirectoryContent.buildContent(DirectoryContent.java:84)
at org.ds.directoryView.service.DirectoryQuery.search(DirectoryQuery.java:131)
at org.ds.directoryView.action.DirectoryAction.execute(DirectoryAction.java:55)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.ds.util.MyActionServlet.process(MyActionServlet.java:17)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at org.ds.util.MyFilter.doFilter(MyFilter.java:121)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at org.ds.util.SysLogFilter.doFilter(SysLogFilter.java:56)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7053)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
写错了,应该把mdfiled改为id,因为占位符是id来占位的
String hql = "from Metadata where mdfileid= :id";
Metadata metadata = null;
Session session = getHibernateTemplate().getSessionFactory().openSession();
try {
Query query = session.createQuery(hql);
query.setParameter("mdfileid",id);
6. No CurrentSessionContext configured!
web应用添加:
<property name="current_session_context_class">jta</property>
java应用添加:
<property name="current_session_context_class">thread</property>
7. org.hibernate.InvalidMappingException: Could not parse mapping document from resource
解决:Domain与hbm.xml映射错误!
8.com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
解决:其实这个问题是由于mysql空闲导致断开连接的,netstat -nao查看到果然有占用着mysql的进程
关闭进程,在执行一次程序,成功解决该问题!