java技術

          hibernate spring struts

          BlogJava 聯系 聚合 管理
            18 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

          多對一(Many-to-One)
          使用@ManyToOne批注來實現多對一關聯。
          @ManyToOne批注有一個名為targetEntity的參數,該參數定義了目標實體名,通常不需要定義該參數,因為在大部分情況下默認值(表示關聯關系的屬性類型)就可以很好的滿足需求了。不過下面這種情況下這個參數就顯得有意義了:使用接口作為返回值而不是常見的實體。
          @ManyToOne(targetEntity=CompanyImpl.class)
          @JoinColoumn(name=”COPM_ID”)
          Public Company getCompany(){
             return company;
          }

          多對一的配置方式有兩種:(1)通過@JoinColoumn映像(2)通過關聯表的方式來映像
          (1)通過@JoinColoumn映射
          SRD Framework中Company,Category例子:
          Company:
          @ManyToOne
             @JoinColumn(name = "CATEGORY_OPTION_ID")
             private Category category = null;
             Category:
          @DiscriminatorValue("Category")
          public class Category extends Option {
          }
          (2)通過關聯表映射
          通過@JoinTable批注定義關聯表,該關聯表包含了指回實體表的外鍵(通過@JoinTable.joinColoumns)以及指向目標實體表的外鍵(通過@JoinTable.inverseJoinColoumns)
          @Entity
          @Table(name="Test_TreeType")
          public class TreeType {
             private Integer id;
             private String name;
             private ForestType forestType;
             @ManyToOne(fetch = FetchType.LAZY)
             @JoinTable(name="Test_Tree_Forest",
                joinColumns = @JoinColumn(name="tree_id"),
                inverseJoinColumns = @JoinColumn(name="forest_id") )
             public ForestType getForestType() {// forestType的getter,setter方法必須在這里,否則會出錯
                return forestType;
             }
             public void setForestType(ForestType forestType) {
                this.forestType = forestType;
             }

             @Id
             @GeneratedValue
             public Integer getId() {
                return id;
             }

             public void setId(Integer id) {
                this.id = id;
             }

             public String getName() {
                return name;
             }

             public void setName(String name) {
                this.name = name;
             }
          }

          @Entity
          @Table(name="Test_ForestType")
          public class ForestType {
             private Integer id;
             private String name;
             private Set<TreeType> trees;
             @OneToMany(mappedBy="forestType")
             public Set<TreeType> getTrees() {// trees的getter,setter方法必須在這里,否則會出錯
                return trees;
             }
             public void setTrees(Set<TreeType> trees) {
                this.trees = trees;
             }
            
             @Id @GeneratedValue
             public Integer getId() {
                return id;
             }
             public void setId(Integer id) {
                this.id = id;
             }
             public String getName() {
                return name;
             }
             public void setName(String name) {
                this.name = name;
             }
          }

          posted on 2009-11-05 15:29 just 閱讀(621) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 桃园县| 乌拉特中旗| 高平市| 潜山县| 敦化市| 玉田县| 定日县| 公主岭市| 邵东县| 视频| 汤原县| 道孚县| 高碑店市| 大庆市| 南阳市| 荥阳市| 临沭县| 乐安县| 常熟市| 湾仔区| 稻城县| 屏山县| 蕉岭县| 绥中县| 巍山| 高州市| 阜平县| 龙里县| 涟水县| 云南省| 保德县| 城口县| 本溪| 星子县| 安龙县| 宁强县| 娱乐| 四平市| 万载县| 赣州市| 新干县|