用以下方法调用:
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)那里的问题??
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)那里的问题??
在这hiberante的hql只查询pojo类
也就是专门查找对象用的
你要是查询可以直接写 from employee就可以了
<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)
HQL是from Employee
还有你把pojo类属性命名改了,命名不规范会有很多问题的,就是把userid、username改成userId,userName
把EMPLOYEE改成你的表所映射的javabean类的名字
select e.USERID,e.USERNAME,e.PASSWORD from Employee as e
应该就是这个问题了