今天在做JobWin界面的时候,通过Hibernate读取数据库内容到JobWin的table里面,出现了org.hibernate.hql.ast.QuerySyntaxException这个异常。
先看下结构:
其中里面的Job.hbm.xml文件如下:
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" ""> <hibernate-mapping package="vo"> <!-- 每个class元素映射一个持久化类 --> <class name="Job" table="jy_job_file"> <id name="jobId" column="id"> <generator class="identity"/> </id> <property name="jobNum" column="jobNum"/> <property name="jobName" column="jobName"/> <property name="entranceUrl" column="entranceUrl"/> <property name="userno" column="userno"/> <property name="searchLayer" column="searchLayer"/> <property name="searchFrequency" column="searchFrequency"/> <property name="searchArea" column="searchArea"/> <property name="searchType" column="searchType"/> <property name="searchKey" column="searchKey"/> <property name="startTime" column="startTime"/> <property name="endTime" column="endTime"/> <property name="status" column="status"/> </class> </hibernate-mapping>
|
我在JobDao里的查询语句如下:
public List<Job> findByStatus(String status) { List JobList = getHibernateTemplate().find("from jy_job_file where status='"+status+"'"); return JobList; }
|
运行后读取的时候就抛出org.hibernate.hql.ast.QuerySyntaxException:jy_job_file is not mapped [from jy_job_file where status='status']这个异常.
原来SSH机制不一样,他要通过映射,这里它映射到Job.hbm.xml这个文件,jy_job_file
跟Job对应形成映射,多以这里不能用jy_job_file这个表,而应该用Job.
因此把原来的
List JobList = getHibernateTemplate().find("from jy_job_file where status='"+status+"'");
改成
List JobList = getHibernateTemplate().find("from Job where status='"+status+"'");
就该觉问题了。
阅读(7259) | 评论(1) | 转发(0) |