目前项目中所有的实体的主键生成策略都是UUID的,但是在执行hibernate的save()方法时,主键id都是自动生成的,现在我想在调用save()方法时手动的分配一个id,不知道如何才能做到这一点,还是这种情况根本不能实现,请高手赐教!

解决方案 »

  1.   

    在实体映射文件,主键生成策略改成:<generator class="assigned" />
      

  2.   

    我有个前提条件是必须使用UUID策略,如何给主键手动的分配一个UUID。
      

  3.   

    <id name="id" column="id">
        <generator class="uuid.hex" />
    </id>
      

  4.   

    或者你用assigned,然后写个方法,随机生成一个UUID,然后手动指定这个就可以了
      

  5.   

    使用hibernate的拦截器,save之前执行手动的分配一个id
      

  6.   


    import java.util.UUID;
    public class aaa {
      public static void main(String[] args) {   
        for (int i = 0; i < 10; i++) {
          System.out.println(UUID.randomUUID());
        }
      }
    }