hibernate對映聯合主鍵

2021-06-18 14:46:41 字數 1226 閱讀 2146

student類:

public class student{

private studentpk  pk;

private int age;

get方法....

set方法....

聯合主鍵類必須序列化

public class studentpk implements serializable{

private int studentno;

private string name

get set方法.........

//必須實現equals、hashcode

@override

public boolean equals(object o){

if(o instanceof studentpk){

studentpk pk=(studentpk) o;

if(this.id==pk.id&&this.name.equals(pk.name)){

return true;

return false;

@override

public int hashcode(){

return this.name.hashcode();

annotation對映聯合主鍵的3中方式:

@idclass(teacherpk.class)----------方式3

public class teacher{

@id-------------------------方式1

@embeddedid----------------方式2

private teacherpk pk;---------方式3去掉此處

@idprivate int tno;-------------------方式3

@idprivate string name;------------方式3

private string title;

get 

set方法.......

主鍵類:

@embeddale --------------方式1

public class teacherpk implements serializable{

private int tno;

private string name;

get   set 方法.......

equals hashcode方法.............

Hibernate主鍵對映

實體類最好有主鍵,並有對應的getter setter方法,這是hibernate推薦的,主鍵盡量可以為null值的型別,例如integer string long等,而不要使用int long等 配置主鍵 hibernate中用 id宣告該列為主鍵列,同時使用 column宣告該列的列明,當列明於...

Hibernate聯合主鍵Annotation

teacher類設定id,name為聯合主鍵 abc三種方式 新建teacherpk類,屬性id,name和getters,setters在teacher裡去掉id,name以及他們的getset方法 a 1給teacherpk加注釋 embeddable 2在teacher中加入teacherpk...

hibernate無主鍵對映

在hibernate中,表結構如果沒有主鍵的話,對映時是會把所有的字段預設為類似的聯合主鍵形式,就到時候就會產生2個實體類,1個人實體id,另外乙個則為真正的資料字段 在查詢時有可能會產生一些問題,例如,空指標,獲取的list有長度,但是實際陣列卻為空 這是乙個很惱火的問題.雖然仔細一回想就能想到是...