表A主键生成策略为<generator class="uuid.hex"/>,如果在生成对象时,手动设置了id,hibernate还是按生成策略生成一个新的uuid,如何在设置了id时不生成新的uuid,而是用自己设置的id呢??求大侠解惑,谢谢!!

解决方案 »

  1.   

    < generator class="assigned"/>   
      

  2.   

    我的意思是策略还是用<generator class="uuid.hex"/>不改变,但是指定了id时就用指定的id,如何实现??求指教
      

  3.   

     lz 的意思是不是Id你已经赋值了,如果那样的话就用<generator class="assigned"/>
    如果不是,说清楚点
      

  4.   

    差不多是这个意思,因为我现在的项目中的所有数据表的id策略都是<generator class="uuid.hex"/>,现在项目要从另一个系统中同步数据到现在的项目中,我想在不改变现在项目中的id策略的前提下,把另一个系统中的数据包括id同步到现在的项目中
      

  5.   

    我们要想这样的id生成策略是不是有问题
    uuid会自动生成集群的id
    今天要是你指定的id和集群生成的id一样那会不会出问题
      

  6.   

    用本身的主键策略
    新加数据的时候不管你ID填什么都是用主键生成器生成你的需求,可以自己实现一个自定义的主键生成器,代码GOOGLE之,并不复杂
      

  7.   

    创建表的时候指定主键,然后生成对应的类和配置文件,将配置文件中的id方式改为:< generator class="assigned"/> 
      

  8.   

    你可以看下源码,有个叫**KeyGenerator的类,还有个Factory类,是hibernate实现的几种策略,你可以通过继承IdentifierGenerator? 好像是这个类,重写自己的策略。