Hibernate 继承类 每棵树 集成的表

来源:互联网 发布:用java编写字母的菱形 编辑:程序博客网 时间:2024/06/02 19:42

Animal类

public class Animal {
private int id;
private String name;
private boolean sex;
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;
}
public boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
} 

------------------------------------------------------------

Pig类

public class Pig extends Animal {
private int weight;
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
}

---------------------------------------------------------------

Bird类

public class Bird extends Animal {

private int height;
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
}----------------------------------------------------------

映射文件

Animal.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.soft.gread1">
<class name="Animal" table="t_animal" lazy="false" >
<id name="id" >
            <generator class="native"/>        
</id>
<!--添加鉴别器 此标签必须写在id标签后  往表中 添加type字段 用于区分 -->
<discriminator column="type" type="string"/>
<property name="name"/>
<property name="sex"/>

<subclass name="Pig" discriminator-value="P">
<property name="weight"/>
</subclass>

<subclass name="Bird" discriminator-value="B">
<property name="height"/>
</subclass>

</class>
</hibernate-mapping>



原创粉丝点击