在表对应的po文件里写一个hash算法,把对应的hbm.xml文件id的标为<generator class="uuid.hex"/>就可以了

解决方案 »

  1.   

    感谢wind_rain(风风雨雨) 的回复,我知道这样是可以的
    <generator class="uuid.hex"/>
    但是我的设置的是
    <generator class="Assigned"/>
    有谁知道这样应该怎样设置ID么?
      

  2.   

    你那样设置好象是要你手动添加ID吧(就是说要写一个set和get方法),我的印象中就是这样的,但我改成uuid.hex这样的属性就可以把我生成的ID自动插入我的表中;还有就是可以设置为数据库自动增长,也可以在这里进行配制
      

  3.   

    设置好对应的主健生成方式后
    直接在你需要保存的BEAN中加上 bean.setId("**")就可以了 *注意:该BEAN类中必须有getId()和setId(String s)方法
      

  4.   

    因此我把主键类型设置为“Assigned”,书上说明是:数据交由Hibernate保存时,主键值已经设置完毕,无需hibernate干预.<generator class="Assigned"/>无需hibernate干预干预那就是要人去干预咯,新增的时候在调用Save之前你必须要显式调用
    PO.setKey(XX);去给主键字段赋值。如果是<generator class="Native"/>,则是通过数据库的内部机制去产生主键。
    比如你的主键是用了auto_increment,在新增的时候就无需去给PO的主键字段赋值,
    直接调Save即可