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有長度,但是實際陣列卻為空 這是乙個很惱火的問題.雖然仔細一回想就能想到是...