日期:2014-05-17  浏览次数:20686 次

项目光报HQL错误,找不到是哪写错了

是哪一点写错了?

------解决方案--------------------
你要用  实体类,,而不是表名。。。
------解决方案--------------------
据说是hql中没有实现insert,参考http://zhidao.baidu.com/question/326458756.html,你可以直接使用session.save()方法,示例代码如下:
public boolean save(Object obj)
{
boolean state = false;

Session session = null;
Transaction tscn = null;

try 
{
session = HibernateUtil.getSessionFactory().getCurrentSession();
tscn = session.beginTransaction();
session.save(obj);
tscn.commit();

catch (HibernateException e) 
{
if(null != tscn)
{
tscn.rollback();
}
e.printStackTrace();
state = false;
}
finally
{
HibernateUtil.closeSession();
state = true;
}

return state;
}

最后,你原来的代码中貌似没有关闭session
------解决方案--------------------
id 存的是 null?
------解决方案--------------------
你这个ID是自动生成的你干嘛还要传一个null值啊...还有就是那个Insert你要做的是HQL插入还是原生SQL的插入
------解决方案--------------------
看了下,表名称貌似都不一样,另外,你用的是executeUpdate()更新方法,主键ID必须有值;还有用HQL的话注意一下字段,建议你使用session.update(Object obj)来做,这样可非常省事。