分类: Java
2009-02-12 17:11:19

class Animal
{
private String identifier;
private String name;
private String category;
// setter and getter
}
class Dog extends Animal
{
private String 
// setter and getter
}
class Cat extends Animal
{
private String 
// setter and getter
}
<class name="Animal" table="TB_ANIMAL">
<id name="identifier" type="string" column="IDENTIFIER">
<generator class="uuid.hex"/>
id>
<discriminator column="ANIMAL_TYPE" type="string"/>
<property name="name" column="NAME" type="string"/>

<subclass name="Dog" discriminator-value="DOG">

subclass>
<subclass name="Cat" discriminator-value="CAT">

subclass>
class>
<class name="Animal" table="ANIMAL">
<id name="identifier" column="IDENTIFIER" type="string">
<generator class="uuid.hex"/>
id>
<property
>
class>
文件名:Dog.hbm.xml
<joined-subclass name="Dog" table="DOG" extends="Animal">
<key column="DOG_ID"/>

joined-subclass>
文件名:Cat.hbm.xml
<joined-subclass name="Cat" table="CAT" extends="Cat">
<key column="CAT_ID"/>

joined-subclass>
<class name="Dog" table="DOG">
<id name="identifier" column="IDENTIFIER" type="string">
<generator class="uuid.hex"/>
id>
<property name="name" column="NAME" type="string"/>

class>
文件名:Cat.hbm.xml
<class name="Cat" table="CAT">
<id name="identifier" column="IDENTIFIER" type="string">
<generator class="uuid.hex"/>
id>
<property name="name" column="NAME" type="string"/>

class>
第二个例子
新建一个类,包名:javamxj.inheritance.two,类名:Animal。然后在生成的代码中添加变量,再利用“生成 Getter 和 Setter”,具体方式同《Eclipse快速上手Hibernate--1. 入门实例 》文章中的编辑User.java的方式一样。
Vehicle.java
|
|
|
Car.java |
|
|
|
Truck.java |
|
|
· 这两个子类都很简单,注意添加的hibernate.joined-subclass的标记。
Vehicle.hbm.xml
|
|
重点是看看“joined-subclass”标签。