用以下方法调用:
public List getEmployees()
{
return (List)getHibernateTemplate().find("select USERID,USERNAME,PASSWORD from EMPLOYEE");
}然后用spring显示,结果报错,表格无法映射。
javax.servlet.ServletException: org.springframework.orm.hibernate3.HibernateQueryException: EMPLOYEE is not mapped. [select USERID,USERNAME,PASSWORD from EMPLOYEE]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: EMPLOYEE is not mapped. [select USERID,USERNAME,PASSWORD from EMPLOYEE]
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)那里的问题??

解决方案 »

  1.   

    在你的映射里面应该没写,你先检查一下hibernate.cfg.xml,看看能不能找到你配置的表映射(很有可能没配置),如果有,再去检查你的hbm是不是配置错误。
      

  2.   

    EMPLOYEE 是你的表名?还是你的对象名啊?我看你写的应该是表名,这里用对象名就应该没有问题了。
      

  3.   

    EMPLOYEE这是pojo类吧,如果是的话命名也太不规范了吧,谁类名都用大写的啊,查询的时候不是根据数据库表名,是对应的类名,看看映射文件有没有写对,还有在hibernate.cfg.xml有没有加进来那个映射文件 
      

  4.   

    查下你的Employee类中的属性对上了
    在这hiberante的hql只查询pojo类
    也就是专门查找对象用的
    你要是查询可以直接写 from employee就可以了
      

  5.   

    配置文件在Employee.hbm.xml文件下。
    <hibernate-mapping>
        <class name="com.dhcc.login.model.Employee" table="EMPLOYEE" schema="BY">
            <composite-id name="id" class="com.dhcc.login.model.EmployeeId">
                <key-property name="userid" type="java.lang.String">
                    <column name="USERID" length="20" />
                </key-property>
                <key-property name="username" type="java.lang.String">
                    <column name="USERNAME" length="20" />
                </key-property>
                <key-property name="password" type="java.lang.String">
                    <column name="PASSWORD" length="20" />
                </key-property>
            </composite-id>
        </class>
    </hibernate-mapping>EMPLOYEE是表名pojo类是Employee,我都试了,报错是:
    严重: Servlet.service() for servlet default threw exception
    java.sql.SQLException: ORA-00903: 表名无效 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:911)
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1121)
    at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:962)
      

  6.   

    schema="BY"相当于查询BY.EMPLOYEE 当前用户下访问select * from BY.EMPLOYEE可以执行吗
    HQL是from Employee
      

  7.   

    你把select USERID,USERNAME,PASSWORD from EMPLOYEE改成select e.userId,e.userName,e.password from Employee e
    还有你把pojo类属性命名改了,命名不规范会有很多问题的,就是把userid、username改成userId,userName
      

  8.   

    select USERID,USERNAME,PASSWORD from EMPLOYEE
    把EMPLOYEE改成你的表所映射的javabean类的名字
      

  9.   

    改成这样就行了! 不行再联系我~
    select e.USERID,e.USERNAME,e.PASSWORD from Employee as e
      

  10.   

    你要清楚HQL处理的对象并不是数据库的表 而是PO!  你的PO类名是Employee的话  就应该是from Employee!
    应该就是这个问题了