<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
    當(dāng)我們需要使用一個或多個屬性變量(表中的一列或多列)聯(lián)合起來作為主鍵,我們需要使用復(fù)合主鍵。在EJB3.0中復(fù)合主鍵要求我們編寫一個復(fù)合主鍵類( Composite Primary Key Class )。下面是個小例子,在Student中要用sid和name做復(fù)合主鍵。
    Student實體類:
     1 import javax.persistence.Column;
     2 import javax.persistence.Entity;
     3 import javax.persistence.Id;
     4 import javax.persistence.IdClass;
     5 
     6 @Entity
     7 @IdClass(StudentPK.class)
     8 public class Student {
     9     
    10     private String sid;
    11     private String name;
    12     private String age;
    13 
    14     @Id
    15     public String getSid() {
    16         return sid;
    17     }
    18     public void setSid(String sid) {
    19         this.sid = sid;
    20     }
    21     
    22     @Id
    23     public String getName() {
    24         return name;
    25     }
    26     public void setName(String name) {
    27         this.name = name;
    28     }
    29     
    30     @Column
    31     public String getAge() {
    32         return age;
    33     }
    34     public void setAge(String age) {
    35         this.age = age;
    36     }
    37 
    38 }
    主鍵StudentPK類:
     1 import java.io.Serializable;
     2 
     3 public class StudentPK implements Serializable{
     4     
     5     private static final long serialVersionUID = 1L;
     6     
     7     private String sid;
     8     private String name;
     9     
    10     public StudentPK(){}
    11     public StudentPK(String sid,String name){
    12         this.sid = sid;
    13         this.name = name;
    14     }
    15     
    16     public String getSid() {
    17         return sid;
    18     }
    19     public void setSid(String sid) {
    20         this.sid = sid;
    21     }
    22     public String getName() {
    23         return name;
    24     }
    25     public void setName(String name) {
    26         this.name = name;
    27     }
    28     
    29     @Override
    30     public int hashCode() {
    31         final int prime = 31;
    32         int result = 1;
    33         result = prime * result + ((name == null? 0 : name.hashCode());
    34         result = prime * result + ((sid == null? 0 : sid.hashCode());
    35         return result;
    36     }
    37     
    38     @Override
    39     public boolean equals(Object obj) {
    40         if (this == obj)
    41             return true;
    42         if (obj == null)
    43             return false;
    44         if (getClass() != obj.getClass())
    45             return false;
    46         final StudentPK other = (StudentPK) obj;
    47         if (name == null) {
    48             if (other.name != null)
    49                 return false;
    50         } else if (!name.equals(other.name))
    51             return false;
    52         if (sid == null) {
    53             if (other.sid != null)
    54                 return false;
    55         } else if (!sid.equals(other.sid))
    56             return false;
    57         return true;
    58     }
    59     
    60 }
    主鍵類必需滿足下列條件:
    (1)必需被序列化
    (2)必需有一個公共的無參構(gòu)造方法
    (3)必需實現(xiàn)equals()和hashCode()方法

    當(dāng)你查詢Student實體時必須使用主鍵類才能識別實體如:
        StudentPK pk = new StudentPK("bj1001","jakin");
        Student student 
    = entityManager.find(Student.class, pk);
    在測試本例時筆者犯了兩個低級的錯誤,一是測試環(huán)境的數(shù)據(jù)庫不是項目運行的數(shù)據(jù)庫,二是實體類中的屬性命名用了關(guān)鍵字,請引以為戒。
    posted on 2009-08-19 08:23 seal 閱讀(482) 評論(0)  編輯  收藏 所屬分類: HibernateEJB
    主站蜘蛛池模板: 激情97综合亚洲色婷婷五| 亚洲无删减国产精品一区| 中文在线日本免费永久18近| 亚洲AV区无码字幕中文色 | 青草久久精品亚洲综合专区| 亚洲成a人片在线播放| 一区二区三区观看免费中文视频在线播放| 亚洲最大在线观看| 免费乱码中文字幕网站| 午夜免费啪视频在线观看| 亚洲午夜精品一区二区麻豆| 最新国产AV无码专区亚洲| 我们的2018在线观看免费高清| 免费在线人人电影网| 亚洲视频在线免费观看| 一级毛片直播亚洲| 精品国产污污免费网站aⅴ| 国产成人精品亚洲一区| 1区1区3区4区产品亚洲| 亚洲黄黄黄网站在线观看| 久久国产精品成人片免费| 美美女高清毛片视频黄的一免费 | 最近中文字幕高清免费中文字幕mv| 亚洲精品久久无码av片俺去也| 国产AV无码专区亚洲精品| 在线不卡免费视频| 亚欧免费一级毛片| 九一在线完整视频免费观看| 性xxxx黑人与亚洲| 亚洲欧洲日产国码久在线观看| 国产伦精品一区二区三区免费迷| 2015日韩永久免费视频播放| A国产一区二区免费入口| 国产精品亚洲精品日韩动图| 亚洲免费视频观看| 亚洲AV日韩AV永久无码免下载| 亚洲精品岛国片在线观看| 日韩中文无码有码免费视频| 成人免费福利视频| 欧洲精品99毛片免费高清观看| 在线观看免费无码视频|