1. 程式人生 > >H​i​b​e​r​n​a​t​e​ ​d​i​s​c​r​i​m​i​n​a​t​o​r​-​v​a​l​u​e​用​法

H​i​b​e​r​n​a​t​e​ ​d​i​s​c​r​i​m​i​n​a​t​o​r​-​v​a​l​u​e​用​法

    ... 

</id> 

<discriminator column="flag" type="string" /> 

<!-- 

公共屬性的對映

 --> 

<subclass name="CustomerA" discriminator-value="A"> 

<!-- 

一級客戶特有屬性的對映

 --> 

</subclass> 

<subclass name="CustomerB" discriminator-value="B"> 

<!-- 

二級客戶特有屬性的對映

 --> 

</subclass> 

這樣就可以單獨的用

CustomerA,CustomerB

這樣的例項了,

做資料庫修改時

就不用關心

flag

欄位的值了,會自動的加

A

B

如果是使用

hibernate 

Annotation

而不是

xml

來描述映謝關係,

程式碼如下:

@Entity 

@Table(name = "customer") 

@Inheritance(strategy = InheritanceType.SINGLE_TABLE) 

@DiscriminatorColumn(name = "flag", discriminatorType = 

DiscriminatorType.STRING) 

public class Customer{ 

@Entity 

@DiscriminatorValue(value = "A") 

public class CustomerA extends Customer{