瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          hibernate annoation (五 組件)

          Posted on 2009-11-02 14:56 瘋狂 閱讀(271) 評論(0)  編輯  收藏 所屬分類: hibernate

          例如:有三個類 A B C  最終要持久化的類是A 而 B C 都作為組件內在與A  B,C都要使用@Embeddable標注聲明為一個組件

           

          class A 代碼:

           

          Java代碼 復制代碼
          1. @Entry  
          2. public class A{   
          3. private int id;   
          4. private B b;   
          5. private C c;   
          6. ...   
          7.   
          8.   
          9. public B getB(){   
          10.   ...   
          11. }   
          12.   
          13. public C getC(){   
          14.   
          15. ....   
          16. }   
          17.   
          18. }  

           B 包含C

          class B

          Java代碼 復制代碼
          1. @Embeddable  
          2. public  class B{   
          3.    private Stirng bname;   
          4.    private C c;   
          5.    get set....   
          6.  }  

           

           

          class C

          Java代碼 復制代碼
          1. @Embeddable  
          2. public class C{   
          3.   private String cnam2;   
          4.   
          5.    get set....   
          6.   }  

           持久化后 并沒有將C的cnam重復持久化為兩個字段如果需要這樣則需要:

            在A中使用:

           @Enumerated
           @AttributeOverrides(
             {@AttributeOverride(name="bname",column =  @Column(name="cname1") )}
             )

          這樣cname將會再次被顏色為一個字段cnam1

          主站蜘蛛池模板: 通辽市| 大田县| 麻城市| 玛沁县| 淮南市| 通榆县| 格尔木市| 德令哈市| 中江县| 孟连| 永宁县| 平遥县| 明星| 龙岩市| 海盐县| 三明市| 乡宁县| 柏乡县| 邮箱| 峨边| 印江| 伊川县| 平和县| 城固县| 内江市| 德清县| 嘉义市| 诏安县| 云林县| 广元市| 常熟市| 兴义市| 赣州市| 布拖县| 镇宁| 东乌珠穆沁旗| 徐汇区| 咸丰县| 英超| 丽江市| 修文县|