现在有张表 主键是:
 @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    public String getDocId() {
        return docId;
    }
这样 自动生成。但是由于 现在有些数据 是从其他表取出存入这张表的 ,这样的话id 就有了。调用save(obj) 方法后 存入的 还是自动生成的id 不再是原来表里面的id 了。
调用saveOrUpdate(obj)方法报错。 
我试图 先保存, 然后修改 obj.setId(id); 最后再update(obj)  可是不行。不给我修改主键值。这么办呢?

解决方案 »

  1.   

    用类次这样试试:
      Query q=session.createSQLQuery("insert into person value(?,?)");
      q.setString(0, "123456");
      q.setString(1, "222");
      q.executeUpdate();
      ts.commit();
      

  2.   

    看下配置文件generator的参数;对照下你开发用的数据库类型。
      

  3.   

    楼主 你这个数据模型设计的就有问题啊.... 表的主键最好是用一个无意义的字段 比如自增id, 这一点你做到了,但是 另一个表的id你怎么能存到这个表的主键呢???  如果你是想建立2个表之间数据的关联关系的话 不管是1对1 还是1对多还是 多对1....这个id应该是作为一个外键的存在啊.