id生成策略-(xml、annotation)-4

来源:互联网 发布:淘宝申请退换货流程 编辑:程序博客网 时间:2024/06/16 19:49

id生成策略

在xml中:

  1. uuid
    注意,需要将java类中对应字段设为String,xml文件中
 <id name="id" >            <generator class="uuid"/> </id>
  1. native
    (hibernate自动匹配id生成策略)
    如果是mysql数据库,java类中对应字段设为int
    (注意,如果只修改字段类型的话,hibernate不会重新生成表,测试时注意把旧表删掉)
  2. sequence
    在oracle中
  3. identity
    在mysql中

在annotation中:
1. auto
默认情况下相当于native,根据数据库的类型来生成
2. sequece(oracle)

// 在类名上指定sequece的名字@SequenceGenerator(name = "teacherSEQ",sequenceName = "teacherSEQ_db")public class Teacher {...}// 在主键id上指定生成策略@Id // 主键@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "teacherSEQ")// oraclepublic int getId() {        return id;    }

3.table(用一张表来生成主键)
// 好处是跨平台,数据跨平台,在实际工作中几乎不用

@TableGenerator(name="Teacher_GEN",                table = "GENERATOR_TABLE",                pkColumnName = "pk_key",                valueColumnName = "pk_value",                pkColumnValue = "Teacher",                allocationSize = 1)public class Teacher {...}
   @GeneratedValue(strategy = GenerationType.TABLE,generator = "Teacher_GEN")// oracle    public int getId() {        return id;    }
  1. identity
    mysql可使用
阅读全文
0 0
原创粉丝点击