隨筆 - 25  文章 - 32  trackbacks - 0
          <2008年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          表自連實際上就是one to one的關系。比如書籍類型。類型有父類型。那父類型如何表示呢。在java中應當這樣寫:
          public class BookType  {
              
          private Long id;
              
          private String name;
              
              
          private BookType parent;
                  
          //getter && setter
          }
          但如果這個是一個JPA類就出問題了。因為parent沒有寫注釋。在jpa自動創建表是會認為這是一個字節類型的。所以還應該為parent些上一個注釋。既然是自連。應該寫@OneToOne
          這里就要注意了。OneToOne不能寫其他屬性,比如不能這樣寫
          @OneToOne(targetClass=BookType.class)
          這樣的話在系統自動生成數據表時會報錯。也不能加 @JoinColumn。唯一的辦法就是只要@OneToOne。其他什么都不寫。這樣就不會報錯了。
          代碼如下:
          public class BookType  {
              
          private Long id;
              
          private String name;
              
              @OneToOne
              
          private BookType parent;
                  
          //getter && setter
          }

          另外:如果想不讓某個屬性不被轉換成數據庫字段。需要在此屬性的getter方法上加@Transient注釋。比如BookType的fullName屬性。
          例子:
              /**
               * 獲取包括父節點名稱的全部路徑
               * 
          @return
               
          */
              @Transient
              
          public String getFullName(){
                  StringBuffer buffer
          =new StringBuffer("");
                  
          if(parent!=null){
                      buffer.append(parent.getFullName());
                      buffer.append(
          "-");
                  }
                  buffer.append(name);
                  
          return buffer.toString();
              }
          posted on 2008-11-30 15:34 phyeas 閱讀(659) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 萝北县| 慈利县| 汝南县| 乳山市| 措勤县| 滨州市| 晋城| 仁化县| 乡宁县| 蓝山县| 祁阳县| 武功县| 旬邑县| 皋兰县| 万州区| 黄梅县| 化州市| 岱山县| 武邑县| 永寿县| 淄博市| 大洼县| 宣威市| 柳河县| 稻城县| 黑河市| 涪陵区| 临猗县| 德兴市| 广河县| 义乌市| 中山市| 吴堡县| 花莲市| 鄂尔多斯市| 乌苏市| 彰化县| 宽甸| 武威市| 江城| 申扎县|