我在进行更新时,写了这样一句HQL语句
public Object doInHibernate(Session session) throws HibernateException, SQLException {        Query   query = session.createQuery("update Manager manager set manager.realName  =:managerRealName,manager.email    =:email where manager.managerId =:managerId");
    query.setString("managerRealName", manager.getManagerLoginName());
    query.setString("email", manager.getEmail());
    query.setInteger("managerId", manager.getManagerId());
    return query.list();
 }
});我只要更新Manager对象里的三个属性,有什么好的方法没?我的报错
org.hibernate.hql.QueryExecutionRequestException: Not supported for DML operations [update cn.edu.hnuc.model.Manager manager set manager.realName =:managerRealName,manager.email =:email where manager.managerId =:managerId]请各位指点一下,小弟感激不尽

解决方案 »

  1.   

    你执行query.list能更新么?得executeUpdate啊。
      

  2.   

    还有更新的时候要进行事务的管理,首先获取session,然后获取事务,最后执行excuteUpdate方法更新
      

  3.   

    首先获取session,然后获取事务,最后执行excuteUpdate方法更新
      

  4.   

    还有更新的时候要进行事务的管理,首先获取session,然后获取事务,最后执行excuteUpdate方法更新
      

  5.   

    还有更新的时候要进行事务的管理,首先获取session,然后获取事务,最后执行excuteUpdate方法更新
    还有更新的时候要进行事务的管理,首先获取session,然后获取事务,最后执行excuteUpdate方法更新
      

  6.   


    query.setString("managerRealName", manager.getManagerLoginName());
    query.setString("email", manager.getEmail());
    query.setInteger("managerId", manager.getManagerId());
    query.executeUpdate();
      

  7.   

    在hibernateTemplate 中是怎样写出的呢,小弟初学hibernate请大侠见谅啊
    如果不进入到
    HibernateCallback(){
        
    }
    没有地方执行HQL语句啊
      

  8.   

    你能得到session就能执行hql语句
      

  9.   

    hql语句不支持对象别名,不支持命名参数
    只能这么写:
    update cn.edu.hnuc.model.Manager set realName=?,email=? where managerId =?
    用HibernateTemplate.batchUpdate方法执行。
      

  10.   

    得到的那个session 
    其执行方法只能返回List对象