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

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

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

    千里冰封
    JAVA 濃香四溢
    posts - 151,comments - 2801,trackbacks - 0
    EJB中的集合映射

    我們在前面的一對多以及多對多的情況可以看到,我們會需要對集合進行映射,對于基于List的映射我們在前面已經看過了。但是如果我們想對Map進映射呢,那該怎么辦?

    其實JPA已經幫我們設計好了。那就是利用@MapKey來進行注釋。

    我們還是先要看看MapKey的代碼吧:

    package javax.persistence;

    @Target({METHOD, FIELD}) @Retention(RUNTIME)
    public @interface MapKey
    {
       String name( ) 
    default "";
    }

    應用如下:

    @Entity
    public class Customer implements java.io.Serializable {
        
        
    private Map<String, Phone> phoneNumbers = new HashMap<String, Phone>( );
        
        @OneToMany(cascade
    ={CascadeType.ALL})
        @JoinColumn(name
    ="CUSTOMER_ID")
     @MapKey(name
    ="number"

        
    public Map<String, Phone> getPhoneNumbers( ) {
           
    return phoneNumbers;
        }
        
    public void setPhoneNumbers(Map<String, Phone> phones) 
     {
            
    this.phoneNumbers = phones;
        }
    }

            在此我們可以看出,@MapKey它只有一個方法,那就是指定名字,并且指定的名字必須是它所在的實體的成員,否則的話就識別不了了,如果我們留空的話,那默認的key就是這個實體類的主鍵。用它的好處就是,我們有時候對于這個實體來說,僅僅需要知道的是它的某一部份,并且我們希望利用這一部分來進行對實體的操作以及辨別。這樣用Map就比用List方便一些了。

            在此我們只是在以前一對多的基礎上改了一點點而已,以前一對多的時候,沒有@MapKey的注釋,那么它返回的就是一個List,現在我們加了@MapKey的注釋,這樣EntityManager來進行操作的時候,就會自動把我們的實體列表根據我們所指定的Key生成一個Map了。在某些情況下用Map確實比用List要方便許多。





    盡管千里冰封
    依然擁有晴空

    你我共同品味JAVA的濃香.
    posted on 2007-10-02 13:55 千里冰封 閱讀(1144) 評論(2)  編輯  收藏 所屬分類: JAVAEE

    FeedBack:
    # re: EJB學習日記(15)
    2007-10-02 21:08 | sitinspring
    國慶還在學習啊  回復  更多評論
      
    主站蜘蛛池模板: 亚洲国产精品婷婷久久| 免费看美女被靠到爽的视频| 亚洲一本大道无码av天堂| 亚洲AV无码成人精品区狼人影院| 亚洲精品视频免费看| 91亚洲精品视频| 久久国产免费福利永久| 亚洲第一永久在线观看| 亚洲成人在线免费观看| 精品亚洲国产成人| 拍拍拍又黄又爽无挡视频免费| 亚洲综合久久一本伊伊区| 亚洲av日韩av天堂影片精品| 成全在线观看免费观看大全 | 亚洲人成无码网WWW| 一级黄色毛片免费看| 国产成人精品久久亚洲| 99免费在线视频| 亚洲视频在线免费播放| 久久精品无码一区二区三区免费| 精品亚洲456在线播放| 国产一区视频在线免费观看 | 亚洲乱码国产一区三区| 久久伊人免费视频| 亚洲黄色免费在线观看| 成人免费a级毛片| 少妇亚洲免费精品| 久久久久久亚洲精品中文字幕| 6080午夜一级毛片免费看6080夜福利| 中文字幕 亚洲 有码 在线 | 亚洲国产另类久久久精品| 99热这里只有精品6免费| 亚洲人片在线观看天堂无码| 亚洲国产精品第一区二区三区| 成人性生交大片免费看中文| 亚洲成a人片7777| 男女作爱在线播放免费网站| 亚洲资源在线视频| 日韩精品免费电影| a级毛片无码免费真人久久| 亚洲乱码卡三乱码新区|