1.10 ID生成策略(聯合主鍵annotation方式)
annotation聯合主鍵的方式有三種:
一、第一種方法實現
1.新建TeacherPK類,
@embeddable
public class TeacherPK implements java.io.Serializable{
private int id;
private String name;
.......如同studentpk類,也要實現equals和hashcode方法。
2.在Teacher類中,加入TeacherPK欄位,同樣生成該欄位的get和set方法。
private TeacherPK pk;
@ID
public TeacherPK getPK(){
}
public void setPK(TeacherPK pk){
{
3.測試程式碼見1.9的studentpk測試方法,一樣的。
TeacherPK pk = new TeacherPK();
pk.setId(1);
pk.setName("zhangsan");
Teacher t = new Teacher();
t.setPk(pk);
t.setAge(8);
二、第二種方法實現
1.同上述建立TeacherPK類,和在Teacher類中加入pk欄位及其get、set方法。註解都不要。
2.在Teacher類中,加入TeacherPK欄位,同樣生成該欄位的get和set方法。
private TeacherPK pk;
@EmbeddedID
public TeacherPK getPK(){
}
3.測試方法同上
三、第三種方法實現1.同上述建立TeacherPK類,但是在Teacher類中不需要加入TeacherPK欄位,teacher類中仍然保留id和name的欄位,如下:
@ID
public String getID(){
}
@ID
public String getName(){
}
2.在teacher類中的id和name的get方法上面分別加上@ID,在teacher類表頭
@IDclass(value=TeacherPK)
public class Teacher{{
}
3.測試方法
Teacher t = new Teacher();
t.setid(15)
t.setname("liu")
t.setPk(pk);
t.setAge(8);
第一種方法用的比較少。