首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Hibernate有关问题:QuerySyntaxError: User is not mapped,帮帮忙吧

2012-05-27 
Hibernate问题:QuerySyntaxError: User is not mapped,帮帮忙吧郁闷啊,运行Hibernate应用程序出现了一个怪

Hibernate问题:QuerySyntaxError: User is not mapped,帮帮忙吧
郁闷啊,运行Hibernate应用程序出现了一个怪问题:应用程序在Jbuilder2006中运行正常,但是打包发布到Tomcat5.5后却在登录验证时出现User   is   not   mapped问题(测试后也发现不能映射其他对象),验证代码如下:

      //在默认构造函数中已进行Session,Transaction等初始化,Transaction已开始
        //整个应用程序在Jbuilder2006中运行正常,但打包发布在Tomcat5.5中运行到
        //query   =   s.createQuery(sql);处就报错
        public   boolean   checkLogin(User   user)
        {
                try
                {
                        String   sql   =   "from   User   u   where   u.userName= ' "   +user.getUserName()+ " ' ";
                        ps.println(sql)   ;
                        query   =   s.createQuery(sql);     //报错,产生User   is   not   mapped异常
                        User   myUser=(User)query.uniqueResult();
                        if(myUser!=null)
                        {
                                if   (myUser.getUserPwd()!=null)  
                                      return   myUser.getUserPwd().equals(user.getUserPwd());
                                else
                                        return   user.getUserPwd()==null;
                        }
                }
                catch   (Exception   e)
                {
                        System.out.println( "select   User   Error: "+e.getMessage());
                        e.printStackTrace();
                }
                return   false;
        }

hibernate.cfg.xml如下:
<?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 ">
<hibernate-configuration>
<session-factory>
<property   name= "connection.url "> jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=MyData </property>
<property   name= "dialect "> org.hibernate.dialect.SQLServerDialect </property>
<property   name= "connection.username "> sa </property>


                                <property   name= "connection.password "> sa </property>
<property   name= "connection.driver_class "> com.microsoft.jdbc.sqlserver.SQLServerDriver </property>
                                <property   name= "hibernate.show_sql "   > true </property>
                                <property   name= "current_session_context_class "> thread </property>
<mapping   resource= "User.hbm.xml "/>
                                <mapping   resource= "CDDate.hbm.xml "/>
                        </session-factory>
</hibernate-configuration>

User.hbm.xml如下:
<?xml   version= "1.0 "?>
<!DOCTYPE   hibernate-mapping
PUBLIC   "-//Hibernate/Hibernate   Mapping   DTD   2.0//EN "
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd ">
<hibernate-mapping   >
        <class   name= "com.wang.module.User "   table= "admin ">
                <id   name= "userId "   column= "userId "   unsaved-value= "0 ">
                        <generator   class= "native "/>
                </id>
                <property   name= "userName "   column= "userName "   not-null= "false "/>
                <property   name= "userPwd "   column= "userPwd "   not-null= "false "/>
        </class>
</hibernate-mapping>

异常如下:
org.hibernate.hql.ast.QuerySyntaxError:   User   is   not   mapped.   [from   User   u   where   u.userName= 'admin ']
at   org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:63)
at   org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:196)
at   org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:130)
at   org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:83)
at   org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:425)
at   org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:880)
at   org.hibernate.impl.SessionImpl.list(SessionImpl.java:830)
at   org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at   org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:603)
at   com.wang.business.BusinessManage.checkLogin(BusinessManage.java:49)
at   webapp.LoginAction.execute(LoginAction.java:22)
at   org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at   org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at   org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)


at   org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at   MyFilter.doFilter(MyFilter.java:36)
at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
at   org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
at   org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at   java.lang.Thread.run(Thread.java:595)
Caused   by:     User   is   not   mapped.
at   org.hibernate.hql.ast.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:85)
at   org.hibernate.hql.ast.FromElementFactory.addFromElement(FromElementFactory.java:77)
at   org.hibernate.hql.ast.FromClause.addFromElement(FromClause.java:67)
at   org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:217)
at   org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:2830)
at   org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2719)
at   org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:513)
at   org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:371)
at   org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:201)
at   org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:151)
at   org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:189)
...   32   more


[解决办法]
估计是你的User.hbm.xml放的不是地方,如果是和User.java在一起,应该是 <mapping resource= "com/wang/module/User.hbm.xml "/> ,如果不加路径,那得和hibernate.cfg.xml放一起了
[解决办法]
how did u do it? could u write your solution?? Many many thanks. I also sent u a message. :)

热点排行