hibernate类之间继承关系映射

1.示图

2.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">
<!-- Generated 2016-7-20 10:48:06 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
     <class name="com.eduask.pojo.Animal" table="Animal">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="assigned"/>
        </id>
        <discriminator column="age" type="string"></discriminator>
         <property name="name" type="java.lang.String">
         <column name="NAME" />
        </property>
        <!--使用subclass时必定使用discriminator,且放在id下面  -->
        <subclass name="com.eduask.pojo.Cat" discriminator-value="10">
        <property name="color"></property>
        </subclass>
        <!--使用union-subclass -->
        <!-- <union-subclass name="com.eduask.pojo.Cat" table="Cat">
        <property name="color"></property>
        </union-subclass> 
        -->
        </class>
</hibernate-mapping>

3.CatTest.java

package com.eduask.test;


import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.junit.Before;
import org.junit.Test;


import com.eduask.pojo.Cat;
import com.eduask.util.HibernateUtil;


public class CatTest {
private SessionFactory sessionFactory;
@Before
public void setUp(){
sessionFactory=HibernateUtil.getSessionFactory();
 }
@Test
public void catTest(){
Session session=sessionFactory.openSession();
Transaction tr=session.beginTransaction();
Cat c=new Cat();
c.setName("小猫之一");
c.setColor("black");
session.save(c);
tr.commit();
session.close();
}
}

4.使用subclass程序运行之后,查看数据库如下:


5.使用union-subclass程序运行之后,查看数据库:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值