HIbernate——ID自动生成

来源:互联网 发布:卓奇电脑网络服务中心 编辑:程序博客网 时间:2024/05/18 20:35

Annotation实现,xml不做讨论


1.@GeneratedValue//id自动增长(常用。默认为auto,在MySQL中为auto_increment;在Oracle中为sequence)

不同的数据库平台方法不同


2.@TableGenerator(
name="Student_GEN", //生成器的名字
table="GENERATOR_TABLE", //创建的表名
pkColumnName="pk_key", //表中的字段名
valueColumnName="pk_value", //表中的字段名
pkColumnValue="Student", //pk_key字段对应的值
allocationSize=1 //每次增长的值
)


@GeneratedValue(strategy=GenerationType.TABLE,generator="Student_GEN")
创建一个表,通过这个表自动增长id,一般用于跨数据库平台



比如Student表中就是在GENERATOR_TABLE这张表中取pk_key值为Student的记录对应的pk_value,1

被取走之后值会加上allocationSize,+1


@Entity//@TableGenerator(//name="Student_GEN", //生成器的名字//table="GENERATOR_TABLE", //创建的表名//pkColumnName="pk_key", //表中的字段名//valueColumnName="pk_value", //表中的字段名//pkColumnValue="Student", //pk_key字段对应的值//allocationSize=1 //每次增长的值//)public class Student {private int id;private String name;private int age;@Id@GeneratedValue//(strategy=GenerationType.TABLE,generator="Student_GEN")public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;} }


原创粉丝点击