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

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

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

    簡易代碼之家

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      157 Posts :: 2 Stories :: 57 Comments :: 0 Trackbacks
        當我們需要使用一個或多個屬性變量(表中的一列或多列)聯合起來作為主鍵,我們需要使用復合主鍵。在EJB3.0中復合主鍵要求我們編寫一個復合主鍵類( Composite Primary Key Class )。下面是個小例子,在Student中要用sid和name做復合主鍵。
    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)必需有一個公共的無參構造方法
    (3)必需實現equals()和hashCode()方法

    當你查詢Student實體時必須使用主鍵類才能識別實體如:
        StudentPK pk = new StudentPK("bj1001","jakin");
        Student student 
    = entityManager.find(Student.class, pk);
    在測試本例時筆者犯了兩個低級的錯誤,一是測試環境的數據庫不是項目運行的數據庫,二是實體類中的屬性命名用了關鍵字,請引以為戒。
    posted on 2007-12-04 09:29 Jakin.zhou 閱讀(1918) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 又硬又粗又长又爽免费看 | 16女性下面无遮挡免费| 亚洲一区二区三区播放在线| 国产精品视_精品国产免费| 全黄大全大色全免费大片| 亚洲精品国产啊女成拍色拍| 国产一区二区三区在线免费观看| 一级女人18片毛片免费视频 | 精品久久久久亚洲| 亚洲av一综合av一区| 日韩精品免费一区二区三区| 国产色爽免费无码视频| 亚洲中文字幕无码久久2020| 亚洲无线码在线一区观看| 免费精品国偷自产在线在线 | 一本色道久久88亚洲综合 | 欧洲乱码伦视频免费国产| 亚洲成人黄色在线观看| 亚洲国产精品国产自在在线| 免费v片在线观看视频网站| 国产激情久久久久影院老熟女免费| 亚洲同性男gay网站在线观看| 国产偷窥女洗浴在线观看亚洲| 日本最新免费网站| 久久久WWW免费人成精品| 亚洲国产精品美女久久久久| 久久久无码精品亚洲日韩按摩 | 久久精品蜜芽亚洲国产AV| 亚洲精品国产精品国自产观看 | 亚洲精品免费网站| a级毛片毛片免费观看永久| 精品亚洲av无码一区二区柚蜜| 亚洲国产电影在线观看| 亚洲av无码潮喷在线观看| 亚洲综合色在线观看亚洲| 国产视频精品免费| 好大好深好猛好爽视频免费| 37pao成人国产永久免费视频| a级毛片免费全部播放无码| 人妻18毛片a级毛片免费看| 亚洲国产精品无码久久|