您的位置:首页 > 产品设计 > UI/UE

022:ID生成策略-Annotation配置-IDENITIY_SEQUENCE

2014-07-29 16:52 363 查看
022:ID生成策略-Annotation配置-IDENITIY_SEQUENCE

GenerateValue(strategy=GenerationType.IDENTITY)

指定ID成策略就是IDENTITY



GenerateValue(strategy=GenerationType.SEQUENCE)

023:ID生成策略Anntation配置Table_Generator

在Teacher.java中定义这两个Generator,下面用哪个就 调用哪个:

@javax.persistence.TableGenerator(
name="Teacher_GEN",
table="GENERATOR_TABLE",
pkColumnName = "pk_key",
valueColumnName = "pk_value",
pkColumnValue="Teacher",
allocationSize=1
)


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


它会生成一张表,这张表本身应该有两个字段,表的名字叫“GENERATOR_TABLE”,它有两个字段,第一个字段名叫key,第二个字段名叫value,每一张表对应的一条记录,根据记录里面的后的值来拿到下一个ID值,这样一张表可以提供无限多个ID值。

package com.bjsxt.hibernate;

import java.beans.Transient;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@javax.persistence.TableGenerator( name="Teacher_GEN", table="GENERATOR_TABLE", pkColumnName = "pk_key", valueColumnName = "pk_value", pkColumnValue="Teacher", allocationSize=1 )
public class Teacher {
private int id;
private String name;
private String title;
private String yourwifeName;
private Date birthDate;
private ZhiCheng zhiCheng;

@Enumerated(EnumType.STRING)
public ZhiCheng getZhiCheng() {
return zhiCheng;
}
public void setZhiCheng(ZhiCheng zhiCheng) {
this.zhiCheng = zhiCheng;
}
@Temporal(TemporalType.DATE)
public Date getBirthDate() {
return birthDate;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
@Transient
public String getYourwifeName() {
return yourwifeName;
}
public void setYourwifeName(String yourwifeName) {
this.yourwifeName = yourwifeName;
}
@Id
@GeneratedValue(strategy=GenerationType.TABLE,generator="Teacher_GEN")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}

@Column
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: