我系统中有1个表,我要写个方法返回表里面的所有记录。但是用spring的gethibernate().load()方法报异常情况如下:
<hibernate-mapping package="com.iso.pojo">
<class name="TisofileClass" table="tISOfileclass" schema="dbo" catalog="LUCKYGLD" dynamic-insert="true" dynamic-update="true">
<id name="code" type="java.lang.String">
<column name="code" length="12" />
<generator class="assigned" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="50" not-null="true" />
</property>
<property name="layer" type="java.lang.Integer">
<column name="layer" not-null="true" />
</property>
<property name="isend" type="java.lang.Byte" >
<column name="isend" not-null="true" />
</property>
<property name="memo" type="java.lang.String">
<column name="memo" />
</property>
<set name="filesInfos" inverse="true" cascade="all" lazy="false">
<key>
<column name="fileClass" precision="10" scale="0" />
</key>
<one-to-many class="TisofilesInfo"></one-to-many>
</set>
</class>
</hibernate-mapping>
public List getAll(){
try{
====请注意这里======================
Session session = this.getHibernateTemplate()
.getSessionFactory().openSession();
List list = session.createQuery("from TisofileClass").list();
用这两行代码没有问题可以返回表里面的所有记录!
================================
//List list = this.getHibernateTemplate().find("com.iso.pojo.TisofileClass");
用上面这行的话就抛出异常!
================================
return list;
}catch(RuntimeException re){
log.error("getting all failed", re);
throw re;
}
}异常如下:
javax.servlet.ServletException: org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: TisofileClass near line 1, column 1 [TisofileClass]; nested exception is org.hibernate.hql.ast.QuerySyntaxError: unexpected token: TisofileClass near line 1, column 1 [TisofileClass]
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.iso.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:120)org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: TisofileClass near line 1, column 1 [TisofileClass]; nested exception is org.hibernate.hql.ast.QuerySyntaxError: unexpected token: TisofileClass near line 1, column 1 [TisofileClass]
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:652)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:413)
org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:371)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:844)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:836)
com.iso.dao.hibernate.fileClassHibernateDAO.getAll(fileClassHibernateDAO.java:94)
com.iso.business.service.facadeManagerImpl.getAllFileClass(facadeManagerImpl.java:108)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
$Proxy2.getAllFileClass(Unknown Source)
com.iso.struts.action.fileInfoAction.execute(fileInfoAction.java:56)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.iso.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:120)
<hibernate-mapping package="com.iso.pojo">
<class name="TisofileClass" table="tISOfileclass" schema="dbo" catalog="LUCKYGLD" dynamic-insert="true" dynamic-update="true">
<id name="code" type="java.lang.String">
<column name="code" length="12" />
<generator class="assigned" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="50" not-null="true" />
</property>
<property name="layer" type="java.lang.Integer">
<column name="layer" not-null="true" />
</property>
<property name="isend" type="java.lang.Byte" >
<column name="isend" not-null="true" />
</property>
<property name="memo" type="java.lang.String">
<column name="memo" />
</property>
<set name="filesInfos" inverse="true" cascade="all" lazy="false">
<key>
<column name="fileClass" precision="10" scale="0" />
</key>
<one-to-many class="TisofilesInfo"></one-to-many>
</set>
</class>
</hibernate-mapping>
public List getAll(){
try{
====请注意这里======================
Session session = this.getHibernateTemplate()
.getSessionFactory().openSession();
List list = session.createQuery("from TisofileClass").list();
用这两行代码没有问题可以返回表里面的所有记录!
================================
//List list = this.getHibernateTemplate().find("com.iso.pojo.TisofileClass");
用上面这行的话就抛出异常!
================================
return list;
}catch(RuntimeException re){
log.error("getting all failed", re);
throw re;
}
}异常如下:
javax.servlet.ServletException: org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: TisofileClass near line 1, column 1 [TisofileClass]; nested exception is org.hibernate.hql.ast.QuerySyntaxError: unexpected token: TisofileClass near line 1, column 1 [TisofileClass]
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.iso.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:120)org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: TisofileClass near line 1, column 1 [TisofileClass]; nested exception is org.hibernate.hql.ast.QuerySyntaxError: unexpected token: TisofileClass near line 1, column 1 [TisofileClass]
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:652)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:413)
org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:371)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:844)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:836)
com.iso.dao.hibernate.fileClassHibernateDAO.getAll(fileClassHibernateDAO.java:94)
com.iso.business.service.facadeManagerImpl.getAllFileClass(facadeManagerImpl.java:108)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
$Proxy2.getAllFileClass(Unknown Source)
com.iso.struts.action.fileInfoAction.execute(fileInfoAction.java:56)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.iso.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:120)
throws DataAccessException Description copied from interface: HibernateOperations
Execute an HQL query. Specified by:
find in interface HibernateOperations Parameters:
queryString - a query expressed in Hibernate's query language
Returns:
a List containing the results of the query execution
Throws:
DataAccessException - in case of Hibernate errors
See Also:
Session.find(String), Session.createQuery(java.lang.String)
我是用下面方法的时候出错!
List list = this.getHibernateTemplate().find("com.iso.pojo.TisofileClass");
不同于load和get方法可以根据OID查询
find("from TisofileClass");
不过我也奇怪下面的方法是在myEclispse上完成spring和hibernate配置自动生成的,看来它也错了!
public List findByExample() {
log.debug("finding Tisofileclass instance by example");
try {
List results = getHibernateTemplate()
.find("com.iso.pojo.TisofileClass");
log.debug("find by example successful, result size: " + results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}