麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JSP > 正文

Hibernate實體對象繼承的三種方法

2024-09-05 00:23:08
字體:
供稿:網(wǎng)友

Hibernate實體對象繼承的方法

   hibernate繼承策略總共有三種,一種是共用一張表;一種是每個類一張表,表里面儲存子類的信息和父類的信息;還有一種是通過表連接的方式,每個類都有一張表,但是子類對應(yīng)的表只保存自己的信息,父類對應(yīng)的表保存父類的信息,它們之間通過子類表和父類表的關(guān)聯(lián)來獲取所有的信息。

第一種方式,即共用一張表:

@Entity @Inheritance(strategy=InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name="discriminator", discriminatorType=DiscriminatorType.STRING)//表示區(qū)分不同的對象的字段名 @DiscriminatorValue("person")//用來表示該對象是何種對象的,即區(qū)分器 public class Parent {   private int id;   private String name;      @Id   @GeneratedValue   public int getId() {     return id;   }   public void setId(int id) {     this.id = id;   }   public String getName() {     return name;   }   public void setName(String name) {     this.name = name;   }  }  @Entity @DiscriminatorValue("child1") public class Child1 extends Parent {   private String email;    public String getEmail() {     return title;   }    public void setEmail(String email) {     this.email = email;   }     }    @Entity @DiscriminatorValue("child2") public class Child2 extends Parent {      private String address;    public String getAddress() {     return score;   }    public void setAddress(String address) {     this.address = address;   }    }      

 這種情況父類和所有子類的所有信息都保存在同一張表里面,通過我們指定的@DiscriminatorColumn對應(yīng)的@DiscriminatorValue來區(qū)別不同的類。 當(dāng)沒有指定@DiscriminatorValue的時候?qū)⑹褂萌惷麃碜鳛镈iscriminatorValue。

第二種策略是每個類一張表,保存所有信息:

@Entity @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) @TableGenerator(    //一個類一張表,最重要的是要保證它們的id由一個生成器產(chǎn)生,@TableGenerator就是為了控制這個的     name="t_gen",     table="t_gen_table",     pkColumnName="t_pk",     valueColumnName="t_value",     pkColumnValue="person_pk",     initialValue=1,     allocationSize=1     ) public class Parent {   private int id;   private String name;      @Id   @GeneratedValue(generator="t_gen", strategy=GenerationType.TABLE)//這個就是用表生成器生成的,用同一個生成器就可以控制它們的id不重復(fù)   public int getId() {     return id;   }   public void setId(int id) {     this.id = id;   }   public String getName() {     return name;   }   public void setName(String name) {     this.name = name;   }  }   @Entity public class Child2 extends Parent {      private String address;    public String getAddress() {     return score;   }    public void setAddress(String address) {     this.address = address;   }    }   @Entity public class Child1 extends Parent {   private String email;    public String getEmail() {     return title;   }    public void setEmail(String email) {     this.email = email;   }     } 

弟三種方式是采用表連接的方式:

@Entity @Inheritance(strategy=InheritanceType.JOINED)  public class Parent {   private int id;   private String name;      @Id   @GeneratedValue   public int getId() {     return id;   }   public void setId(int id) {     this.id = id;   }   public String getName() {     return name;   }   public void setName(String name) {     this.name = name;   }  }  @Entity public class Child2 extends Parent {      private String address;    public String getAddress() {     return score;   }    public void setAddress(String address) {     this.address = address;   }    }   @Entity public class Child1 extends Parent {   private String email;    public String getEmail() {     return title;   }    public void setEmail(String email) {     this.email = email;   }     } 

         采用表連接的情況,還是每個類擁有自己的一張表,只是子類對應(yīng)的表只保存子類的信息,其父類的信息由父類的表保存。當(dāng)需要獲取子類的完整信息時通過表連接的方式連接子類的表和父類的表獲取對應(yīng)信息。可以在子類的表上標(biāo)注@PrimaryKeyJoinColumn(name="foreignKeyName")指明子類表相對于父類表外鍵的名稱。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識閱讀請移步到JSP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久精品视频亚洲 | 久久影院午夜 | 亚洲第一成人在线观看 | 久久精品亚洲精品国产欧美kt∨ | 91精品国产91久久久久久不卞 | 久久久久久久国产视频 | 逼片视频 | 性明星video另类hd | 国产成人在线视频播放 | 免费观看视频91 | 超级av在线 | 毛片大全免费看 | 美女污污在线观看 | 成人在线观看免费观看 | 国产资源在线免费观看 | 国产精品久久二区 | 99热高清 | 91视频站 | 天天看成人免费毛片视频 | 韩国精品一区二区三区四区五区 | 九九热精 | 国产乱一区二区三区视频 | 免费放黄网站在线播放 | 在线播放污 | 久久国产一级片 | 最新亚洲国产 | 亚州精品国产 | 欧美成人理论片乱 | 一本一道久久久a久久久精品91 | 成年人国产视频 | 国产91porn | 久久精品日韩一区 | 国产精品视频一区二区三区四 | 色视频在线观看 | 成人激情久久 | 中文字幕精品一区久久久久 | 污黄视频在线观看 | 久久综合综合久久 | 日韩精品久久久久久 | chinese军人gay呻吟 | 精品国产一区二区三区在线 |