package com.demo;
public class Animal {
private int id;
private String name;
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;
}
}
package com.demo;
public class Fish extends Animal {
private int length;
public int getLength() {
return length;
}
public void setLength(int length) {
this.length = length;
}
}
package com.demo;
public class Pig extends Animal{
private int weight;
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
}
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"src/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.demo.Animal">
<id name="id" length="5">
<generator class="increment"></generator>
</id>
<discriminator column="type"></discriminator>
<property name="name" length="20"></property>
<subclass name="com.demo.Pig" discriminator-value="P">
<property name="weight"></property>
</subclass>
<subclass name="com.demo.Fish" discriminator-value="F">
<property name="length"></property>
</subclass>
</class>
</hibernate-mapping>
/**
* 子类继承父类 在Hibernate中体现
* */
@Test
public void testAnimal(){
Configuration configuration=new Configuration();
configuration.configure();
SessionFactory sessionFactory=configuration.buildSessionFactory();
Session session=sessionFactory.openSession();
Transaction transaction=session.beginTransaction();
Pig pig=new Pig();
pig.setName("asd");
pig.setWeight(100);
Fish fish=new Fish();
fish.setName("fish");
fish.setLength(100);
session.save(pig);
session.save(fish);
transaction.commit();
session.close();
}