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();
}