发现一个问题,我用Hibernate操作数据库的时候发现个问题,我修改的步骤是先按传递过来的主键值查询出一个对象,将要修改的值放入对象后,update(Object)修改对象;但是现在出现个问题,我想修改主键修改不了。比如我有10条记录,我获取id=10的记录后,修改id属性为11,则修改操作执行了,但是数据没有任何变化因为没有id=11的记录,如果我把id改成9则第9条记录被修改了。很明显hibernate修改数据的时候是根据对象主键的值去修改其他值,而主键的值不变。但是我想修改主键值,请问我应该如何做???

解决方案 »

  1.   

    update table set id=11 where id=10
      

  2.   

    update table set id=11 where id=10
      

  3.   

    请把DAO层也写1下可以吗?
    把DAO层的update方法写出来就行,我怎么执行上边的语句?
      

  4.   

    String hql="update table set id=11 where id=? ";
    Query query=this.session.createQuery(hql);
    query.setInteger(0,id);
    query.executeUpdate();
    this.session.beginTransaction().commit();