hibernate的ID生成策略

来源:互联网 发布:类似冰河软件 编辑:程序博客网 时间:2024/05/16 05:54

(1)使用xml配置方法

l  uuid ---- id字段必须是String类型(大型项目中往往使用)

    <id name=”id”>

       <generator class=”uuid”></generator>

    </id>

    生成的id为一个varchar(255)类型。

   

l  native ---- 等同于auto_increment,则id可以为int类型

    <id name=”id”>

       <generator class=”native”></generator>

    </id>

    Create table student(id integer not null auto_increment, ……);

   

    (2) 使用annotation

l  AUTO策略

具体方法:在id注解下加入注解:@GenerateValue(javax.persistence

    )(相当于native,对MySQL,使用auto_increment;对Oracle使用

hibernate_sequence),常用。例如:

        @Id

        @GeneratedValue

      

    生成的sql语句范例:create table teacher(id integer not null

                                                     auto_increment)

l  IDENTITY策略@GenerateValue(strategy=GenerationType.IDENTITY)

只能是MySQLSQLService数据库

l  SEQUENCE策略 @GenerateValue(strategy=GenerationType.SEQUENCE)

只能是Oracle数据库

l  TABLE策略