HIbernate——ID自动生成

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;
	} 
}



版权声明:本文为VirusLL原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。