日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hibernatediscriminator-value用法

發布時間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernatediscriminator-value用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:https://blog.csdn.net/iteye_3357/article/details/81862615

?

?

1 可能經常遇到這樣的情況:2 3 在數據庫表中會有這樣的一個字段用來區別記錄的屬性,如:在客戶表中有一個字段表示客戶級別,當這個記錄為A時是一級客戶,為B時是二級客戶。在用hiberante做OR表示時類可能是這樣的:4 5 public class Customer{6 7 private String flag; //表示客戶的級別8 9 ... 10 11 } 12 13 然后,在程序中手動控制flag的值,但是這樣當每個級的客戶有不同的屬性時Customer類將包含所有級別的屬性,這樣不是很好。 14 15 hibernate提供一個Discriminator映射的方法,就是把一個表映射成不同的類,有不同的屬性。 16 17 public class Customer{ 18 19 //包含所有級別的公共屬性 20 21 ... 22 23 } 24 25 26 27 public class CustomerA extends Customer{ 28 29 //只包括一級客戶的特有屬性 30 31 } 32 33 public class CustomerB extends Customer{ 34 35 //只包含二級客戶特有的屬性 36 37 } 38 39 這樣更符合面向對象的原則,然后在hbm.xml中這樣寫: 40 41 <id name="id" type="int"> 42 43 ... 44 45 </id> 46 47 <discriminator column="flag" type="string" /> 48 49 <!-- 公共屬性的映射 --> 50 51 <subclass name="CustomerA" discriminator-value="A"> 52 53 <!-- 一級客戶特有屬性的映射 --> 54 55 </subclass> 56 57 <subclass name="CustomerB" discriminator-value="B"> 58 59 <!-- 二級客戶特有屬性的映射 --> 60 61 </subclass> 62 63 這樣就可以單獨的用CustomerA,CustomerB這樣的實例了,做數據庫修改時就不用關心flag字段的值了,會自動的加A或B。 64 65 如果是使用hibernate Annotation而不是xml來描述映謝關系,代碼如下: 66 67 @Entity 68 69 @Table(name = "customer") 70 71 @Inheritance(strategy = InheritanceType.SINGLE_TABLE) 72 73 @DiscriminatorColumn(name = "flag", discriminatorType = DiscriminatorType.STRING) 74 75 public class Customer{ 76 77 } 78 79 @Entity 80 81 @DiscriminatorValue(value = "A") 82 83 public class CustomerA extends Customer{ 84 85 } 86 87 @Entity 88 89 @DiscriminatorValue(value = "B") 90 91 public class CustomerB extends Customer{ 92 93 } 94 95 這樣就可以了。

?

?

2.

1 public class Singer {2 private String region;3 private Long id;4 private Set<Song> songs = new HashSet<Song>();5 6 public String getRegion() {7 return region; 8 } 9 10 public void setRegion(String region) { 11 this.region = region; 12 } 13 14 public Long getId() { 15 return id; 16 } 17 18 public void setId(Long id) { 19 this.id = id; 20 } 21 22 public Set<Song> getSongs() { 23 return songs; 24 } 25 26 public void setSongs(Set<Song> songs) { 27 this.songs = songs; 28 } 29 30 public void addSong(Song song){ 31 songs.add(song); 32 song.setSinger(this); 33 } 34 }

?

3.

1 public class SingleSinger extends Singer {2 private String name;3 private char sex;4 5 public String getName() {6 return name;7 } 8 9 public void setName(String name) { 10 this.name = name; 11 } 12 13 public char getSex() { 14 return sex; 15 } 16 17 public void setSex(char sex) { 18 this.sex = sex; 19 } 20 }

?

3.

1 package edu.jlu.fuliang.domain;2 3 import java.util.HashSet;4 import java.util.Set;5 6 public class CompositeSinger extends Singer {7 private Set<SingleSinger> singleSingers = new HashSet<SingleSinger>();8 9 public Set<SingleSinger> getSingleSingers() { 10 return singleSingers; 11 } 12 13 public void setSingleSingers(Set<SingleSinger> singleSingers) { 14 this.singleSingers = singleSingers; 15 } 16 public void addSinger(SingleSinger singleSinger){ 17 singleSingers.add(singleSinger); 18 } 19 }

?

5.

1 public class Band extends CompositeSinger {2 private String name;3 4 public String getName() {5 return name;6 }7 8 public void setName(String name) { 9 this.name = name; 10 } 11 }

?

6.

1 <?xml version="1.0" encoding="utf-8"?>2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">4 5 <hibernate-mapping package="edu.jlu.fuliang.domain">6 <class name="Singer" table="SINGER">7 <id name="id" type="java.lang.Long">8 <column name="SINGER_ID"/>9 <generator class="identity"/> 10 </id> 11 12 <discriminator column="TYPE" type="string"/> 13 14 <property name="region" type="java.lang.String"> 15 <column name="REGION"/> 16 </property> 17 18 <set name="songs" table="SONG" inverse="true" cascade="save-update"> 19 <key column="SINGER_ID"/> 20 <one-to-many class="Song"/> 21 </set> 22 23 <subclass name="SingleSinger" discriminator-value="1"> 24 <property name="name" type="java.lang.String"> 25 <column name="NAME"/> 26 </property> 27 <property name="sex" type="java.lang.Character"> 28 <column name="SEX"/> 29 </property> 30 </subclass> 31 32 <subclass name="CompositeSinger" discriminator-value="2"> 33 <set name="singleSingers" table="SINGER" cascade="save-update" lazy="false"> 34 <key column="COMPSITESINGER_ID"/> 35 <one-to-many class="SingleSinger"/> 36 </set> 37 </subclass> 38 39 <subclass name="Band" discriminator-value="3"> 40 <set name="singleSingers" table="SINGER" cascade="save-update"> 41 <key column="BAND_ID"/> 42 <one-to-many class="SingleSinger"/> 43 </set> 44 </subclass> 45 </class> 46 </hibernate-mapping>

?

轉載于:https://www.cnblogs.com/sharpest/p/6209674.html

總結

以上是生活随笔為你收集整理的Hibernatediscriminator-value用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 调教91| 成人国产一区二区三区精品麻豆 | 午夜视频网 | 亚洲一区二区在线观看视频 | 黄色免费成人 | 美脚の诱脚舐め脚视频播放 | 在线不卡毛片 | 亚洲一区二区精华 | 亚洲综合激情五月久久 | www国产亚洲精品久久麻豆 | 视频在线播 | 国产成a人亚洲精v品无码 | 天天操天天玩 | 亚洲蜜桃精久久久久久久久久久久 | 一卡二卡三卡在线 | 国产第一草草影院 | 国产精品3区 | 日韩黄色一级 | 波多野结衣一区二区三区免费视频 | 久热av在线 | 老司机深夜视频 | 青青草娱乐视频 | 99久久伊人| jlzzjlzz欧美大全 | 香蕉视频网址 | 精品人体无码一区二区三区 | 国产精品久久二区 | 国产69精品久久久久999小说 | 国产调教 | 在线免费观看亚洲 | 丝袜美腿亚洲一区二区图片 | 天堂久久久久 | a在线视频 | 午夜看片在线 | 成人av免费在线 | 一区二区三区日韩电影 | 黄色录像三级 | 久久久久久av| 婷婷丁香一区二区三区 | 欧美精品一二 | 岛国av在线免费观看 | 免费福利小视频 | 欧美激情爱爱 | 欧美精品二区三区 | 污网站免费| 亚洲影视一区二区 | 成人在线视频免费播放 | 麻豆成人入口 | 无码一区二区三区视频 | 国产伦精品一区二区三区视频1 | 91免费视频入口 | 成年丰满熟妇午夜免费视频 | 色悠悠在线视频 | 深夜福利在线免费观看 | 欧美黄色片网站 | 永久免费成人 | 久久久精品中文字幕麻豆发布 | av在线网页 | 久久久久久久亚洲av无码 | 日韩欧美在线中文字幕 | 超碰98在线观看 | 亚洲天堂2021av | av毛片在线播放 | 亚洲人网 | 黄色avv| 欧美精品18videosex性欧美 | 一级绝黄 | 麻豆精品 | 国产专区在线视频 | 国产小视频免费观看 | 一区二区三区免费网站 | 香港三级日本三级三69 | 亚洲欧美精品 | 亚洲女人天堂色在线7777 | 五月天一区二区三区 | 一区不卡av | 天天射一射 | 小视频免费在线观看 | 国产视频一区二区三区四区 | 99日韩精品 | 日韩有码第一页 | 日韩一级片免费 | 伊人久久超碰 | 日韩精品乱码久久久久久 | 香蕉久久国产 | 欧美成人三级精品 | 综合激情网 | 日本亚洲黄色 | 亚洲无人区码一码二码三码的含义 | 亚洲a级精品| 亚洲1024| xxsm.com| 色操插 | 国产精品热久久 | 天天干天天干天天干天天 | 国产视频不卡 | 俄罗斯美女一级爱片 | 国产精品毛片一区二区在线看舒淇 | 99干99|