严重: Servlet.service() for servlet action threw exception
org.hibernate.hql.ast.QuerySyntaxException: Blogbook is not mapped [from Blogbook] at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:158)
at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:87)
at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:70)
at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:255)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:923)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:921)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:913)
at com.ljj.blog.dao.hibernate.foreach.foreachbook(foreach.java:18)
at com.ljj.blog.server.impl.foreachimpl.foreachbook(foreachimpl.java:22)
at com.yourcompany.struts.action.ForeachAction.foreachsql(ForeachAction.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
请问这个是什么问题啊??请你们抽空讲一下,谢谢~~~

解决方案 »

  1.   

    HQL语法问题:HIBERNATE是用过别名查询数据,你不声明别名,相当于你没给出生的孩子一个名字,这是面向对象设计的概念...
      

  2.   

    Blogbook is not mapped这个类没有被映射,你看一下配置文件是否正确。
      

  3.   

    Blogbook is not mapped [from Blogbook] 注意这里的Blogbook不应该是表的名称,而应该是类的名称
      

  4.   

    Blogbook is not mapped [from Blogbook]  Blogbook这个位置上放的应该是类的名称,而不是表的名称
    我估计问题就处在这里
      

  5.   

    这边是Blogbook.hbm.xml
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping>
        <class name="com.ljj.blog.model.Blogbook" table="BLOGBOOK" schema="SCOTT">
            <id name="id" type="java.math.BigDecimal">
                <column name="ID" precision="22" scale="0" />
                <generator class="native" />
            </id>
            <property name="username" type="java.lang.String">
                <column name="USERNAME" length="50" />
            </property>
            <property name="title" type="java.lang.String">
                <column name="TITLE" length="100" />
            </property>
            <property name="content" type="java.lang.String">
                <column name="CONTENT" length="1000" />
            </property>
        </class>
    </hibernate-mapping>
    这边是好像也没什么问题吧
      

  6.   

    有两个查询,第一个可以将表查出来,但是第二个没办法查出来,会出现刚铡说的那个错误package com.ljj.blog.dao.hibernate;import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.ljj.blog.model.Blogadmin;
    import com.ljj.blog.model.Blogbook;public class foreach extends HibernateDaoSupport implements
    com.ljj.blog.dao.foreach { public List foreach(Blogadmin bl) {
    return this.getHibernateTemplate().find("from Blogadmin"); 
    } public List foreachbook(Blogbook bk) {
    return this.getHibernateTemplate().find("from Blogbook");
    }
     问题好像是在这边吧}
      

  7.   


    在hibernate.cfg.xml文件里有没有下面这句呢<mapping resource="......../Blogbook.hbm.xml"/>
      

  8.   

    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration> <session-factory>
    <property name="dialect">
    org.hibernate.dialect.Oracle9Dialect
    </property>
    <property name="connection.url">
    jdbc:oracle:thin:@localhost:1521:mldn
    </property>
    <property name="connection.username">scott</property>
    <property name="connection.password">tiger</property>
    <property name="connection.driver_class">
    oracle.jdbc.driver.OracleDriver
    </property>
    <property name="myeclipse.connection.profile">oracle</property>
    <mapping resource="com/ljj/guestbook/model/Users.hbm.xml" />
    <mapping resource="com/ljj/guestbook/model/Blogadmin.hbm.xml" />
    </session-factory></hibernate-configuration>
      

  9.   

    <mapping resource="com/ljj/guestbook/model/Blogadmin.hbm.xml" /> Blogadmin.hbm.xml  应该改成  Blogbook.hbm.xml
      

  10.   

    <mapping resource="com/ljj/guestbook/model/Blogadmin.hbm.xml" />  或者加上:<mapping resource="com/ljj/guestbook/model/Blogbook.hbm.xml" />  
    是具体情况而定 
     
      

  11.   

    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration> <session-factory>
    <property name="dialect">
    org.hibernate.dialect.Oracle9Dialect
    </property>
    <property name="connection.url">
    jdbc:oracle:thin:@localhost:1521:mldn
    </property>
    <property name="connection.username">scott</property>
    <property name="connection.password">tiger</property>
    <property name="connection.driver_class">
    oracle.jdbc.driver.OracleDriver
    </property>
    <property name="myeclipse.connection.profile">oracle</property>
    <mapping resource="com/ljj/guestbook/model/Users.hbm.xml" />
    <mapping resource="com/ljj/guestbook/model/Blogadmin.hbm.xml" />
    <mapping resource="com/ljj/guestbook/model/Blogbook.hbm.xml" /> 
    </session-factory>
    </hibernate-configuration>
    还是那个错啊,天啊~~~
      

  12.   

    你检查一下数据库里有没有BLOGBOOK这张表,
      

  13.   

    1.hql语句查寻的是javabean,与javabean名字相同,注意大小写2.hibernate.cfg.xml中要有<mapping resource="../Blogbook.hbm.xml" />之类的语句
      

  14.   

    依旧是那个错误,查得出Blogadmin,查不出Blogbook
      

  15.   

    在你加上<mapping resource="com/ljj/guestbook/model/Blogbook.hbm.xml" />之后,
    应该把数据库里表都重新生成一次
    如果还不行的话,我就彻底没辙了,
      

  16.   

    恩,问题好了,
    <value>com/ljj/blog/model/Users.hbm.xml</value>
    <value>com/ljj/blog/model/Blogadmin.hbm.xml</value>
    <value>com/ljj/blog/model/Blogbook.hbm.xml</value>这一段记得加到application.xml中去,谢谢各位回答的前辈,也希望和我有见到一样的错误,可以用这种办法搞定~~~~
    我要结贴了~~~