站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题Hibernate 查询数据时报错,请问这是什么原因呢?急死了!高手请进啊!!

Hibernate 查询数据时报错,请问这是什么原因呢?急死了!高手请进啊!!

摘要: Hibernate 查询数据时报错,请问这是什么原因呢?急死了!高手请进啊!!


报错如下: 头都大了,弄一天了,还是没弄好,请大家帮忙。。

java.lang.RuntimeException:
org.hibernate.hql.ast.QuerySyntaxException: unexpected token:
member near line 1, column 14 [select count(member) from com.ouhn.wms.warehouse.vos.Member member]
com.ouhn.wms.warehouse.vos.MemberDAO.findSQL(MemberDAO.java:153)
com.ouhn.wms.warehouse.action.QueryAction.execute(QueryAction.java:128)

相关代码如下 :
1.MemberDAO.Java:
public List findSQL(String sql, String countsql, int ipage)
throws HibernateException {
Session session = HibernateSessionFactory.getSession();
try {
// 提取記錄總數
Iterator results = session.createQuery(countsql).iterate();
while (results.hasNext()) {
rowCount = (Integer) results.next();
}

2.QueryAction.Java:
String sql ="from com.ouhn.wms.warehouse.vos.Member member";
………………
Collection col = queryDAO.findSQL("select member "+sql,"select count(member) "+sql,ipage);
request.setAttribute("Member", col);

3.Member 为oracle 表 MEMBER 对应生成的类(对象),这里会不会有问题呢?是不是和某些关键字重复了??




语法出错了


把hsql语句中的member去掉


这个问题有个大体思路了,不过还是想听听大家的看法 。

把 member 去掉 ,select count(member) 那这里是不是改为 count(Member) ,
仍然会报同样的错。



select count(member) from com.ouhn.wms.warehouse.vos.Member member
你要干什么,member如果是表的话,你能count一个表吗?sql语句就有错误。

你要不count(*),要不就count表中一个字段都可以,没有count表的。



应该是数据库操作的语句有问题了


member 可以说类(对应一个表)的别名,当然可以 count 的啊 。

这个问题我已经解决了,把member 改为其他的就OK了。

麻烦帮我看看下面这个struts问题吧 ,解决了或对我的解答有帮助的朋友 我马上给分。
1.JSP页面中(ListMember.jsp):
<td>"></td>

2.QueryAction.java
String action=request.getParameter("action");
String search=request.getParameter("search");
String expression=request.getParameter("expression");
if(action==null)action="find";
if(search==null)search="UNsearch";
if(expression==null)expression="";
expression=toChinese(expression);

if ("delete".equals(action)) {
Member delMember = new Member();
delMember.setId(java.lang.Long.valueOf(expression));
queryDAO.removeID(delMember);
}

if("update".equals(action)) {
Member updateMember = new Member();
…………
if("search".equals(search)){
sql+=" where";
…………
3.struts-config.xml
attribute="QueryForm"
input="/query.jsp"
name="QueryForm"
path="/query"
scope="request"
type="com.wintech.wms.warehouse.action.QueryAction">

我的页面流程是:query.jsp-query.do-listMember.jsp(显示查询结果,结果页面中有上面1所说的
编辑、更新等连接,即
现在的问题是 点击上面1中(listMember.jsp)的连接,即出现 :
message :Invalid path /QueryAction was requested
description :The requested resource (Invalid path /QueryAction was requested) is not available.

似乎找不到QueryAction,不知道是不是要把listMember的路径也设进struts-config.xml 中呢?
现在相当2个页面用一个QueryAction.do,但上面1中所说的只是一个连接,而query.jsp中有个form,已经加入 struts-config.xml 了。

真是郁闷,找了半天还是没找到什么原因 ,请大家帮我看看 ??





query.do ?
根据这里 :
attribute="QueryForm"
input="/query.jsp"
name="QueryForm"
path="/query"
scope="request"
type="com.wintech.wms.warehouse.action.QueryAction">

query.jsp 执行后转向 listMember.jsp ,在 listMember.jsp 有个编辑的连接,它直接指向 :
QueryAction.do,调用这里面的
这样应该没错吧 ??


顶一下……


↑返回目录
前一篇: 问个下拉列表框问题
后一篇: Myeclips 配置问题(在线等)