1. 程式人生 > >1.10 ID生成策略(聯合主鍵annotation方式)

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

第一種方法用的比較少。