分享

Hibernate ID生成策略

 openwudi 2013-11-22

        xml生成id

a)         generator

<id name="id" >

<generator class="native"></generator>

</id>

b)         常用四个:native identity sequence uuid

        注解方式:@GeneratedValue

a)       自定义ID

b)       AUTO(直接写 @GeneratedValue 相当如native) (@GeneratedValue(strategy=GenerationType.AUTO))

                       i.      默认:对 MySQL,使用auto_increment

                    ii.      Oracle使用hibernate_sequence(名称固定)

c)       IDENTITY(@GeneratedValue(strategy=GenerationType.IDENTITY))

d)       SEQUENCE(@GeneratedValue(strategy=GenerationType.SEQUENCE))

                       i.      @SequenceGenerator(可自定义在数据库生成指定的sequence名)

 

@SequenceGenerator(name="teacherSEQ", sequenceName="teacherSEQ_DB")
public class Teacher {

           private int id;

}

 

 @Id
 @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="teacherSEQ")
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }

e)       TABLE (可以忘记)

                         i.        @TableGenerator

@TableGenerator(

name="teacherID",                     //被调用的TABLE名字

          table="teacherID_DB",                 //数据库建立的表名

          pkColumnName="key_value",

          pkColumnValue="pk_value",

          valueColumnName="teacher",              //pkColumnValue对应类名

          allocationSize=1                          //pkColumnValue对应类名

)

 

@GeneratedValue(strategy=GenerationType.TABLE,generator=" teacherID ")

 

       注:如果使用注解方式的uuid 如下:

       @Id

@GeneratedValue(generator="teacherUUID")

@GenericGenerator(name="teacherUUID", strategy="uuid")

public String getId() {

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多