日期:2014-05-18  浏览次数:20668 次

关于hibernate的语法问题




这是一个去数据库查询符合订单状态为P的方法:

public List queryOrders(String orderStatetoQuery )
{
//获取session
Session session=HibernateUtil.currentSession();
//开始事务
Transaction tx=session.beginTransaction();


List resultList=null;

//使用HQL创建查询
resultList=  session.createQuery("select distinct o from Orders o where oState =  :inputState")
.setString("inputState",orderStatetoQuery)
.list();
System.out.println(orderStatetoQuery);


//循环遍历list读出查询结果
for(Iterator it=resultList.iterator();it.hasNext();)
{
Orders o=(Orders)it.next();
System.out.println(o.getOrderId());
}
//提交事务
tx.commit();
//关闭会话
HibernateUtil.closeSession();

return resultList;
}

在界面输入P之后
运行的结果总是报错: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order orders0_ where orders0_.state='P'' at line 1

调了好几天,妞子我快疯了!!!!!

------解决方案--------------------
你只要研究明白为什么Orders 被你变成了order类就可以了。

order 是sql关键字。