博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate 实体层设计--Table per subclass
阅读量:4049 次
发布时间:2019-05-25

本文共 1157 字,大约阅读时间需要 3 分钟。

此方法为多个类对应一张表。 通过discriminator在配置文件中设置判断字段。

 

TBook :

         private int pageCount

TDVD :

         private String regionCode

TItem :

        private String id ;

        private String name ;
        private String manufacturer ;

sql :

-- 删除表

DROP TABLE TItem ;
-- 创建表
CREATE TABLE TItem
(
    id varchar(32) not null primary key ,
    -- 通过此字段用于区分保存的是 Book还是 DVD
    category varchar(2) not null ,

    name varchar(20) not null ,  
    manufacturer varchar(20) not null ,

    regionCode varchar(2) ,  --DVD中的字段
    pageCount int     --Book中的字段
) ;
-- 事务提交
commit ;

 

TItem.hbm.xml:

<class name="TItem" table="TITEM">

        <id name="id " column="ID " type="string">
            <generator class="assigned" />
        </id>
<--定义公共字段-->
        <property name="name " column="NAME" type="string" not-null="true" />
        <property name="manufacturer " column="MANUFACTURER" type="string" not-null="true" />
<--定义判断字段-->
        <discriminator column="category " type="java.lang.String"></discriminator>

<--设置各个子类所对应的category -->

        <subclass name="TBook" discriminator-value="1" >
            <property name="pageCount " column="PAGECOUNT" type="int" />
        </subclass>
        <subclass name="TDVD" discriminator-value="2" >
            <property name="regionCode " column="REGIONCODE" type="string" />
        </subclass>
    </class>

转载地址:http://hlcci.baihongyu.com/

你可能感兴趣的文章
Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)
查看>>
fastcgi_param 详解
查看>>
Nginx配置文件(nginx.conf)配置详解
查看>>
标记一下
查看>>
IP报文格式学习笔记
查看>>
autohotkey快捷键显示隐藏文件和文件扩展名
查看>>
Linux中的进程
查看>>
学习python(1)——环境与常识
查看>>
学习设计模式(3)——单例模式和类的成员函数中的静态变量的作用域
查看>>
自然计算时间复杂度杂谈
查看>>
当前主要目标和工作
查看>>
使用 Springboot 对 Kettle 进行调度开发
查看>>
一文看清HBase的使用场景
查看>>
解析zookeeper的工作流程
查看>>
搞定Java面试中的数据结构问题
查看>>
慢慢欣赏linux make uImage流程
查看>>
linux内核学习(7)脱胎换骨解压缩的内核
查看>>
以太网基础知识
查看>>
慢慢欣赏linux 内核模块引用
查看>>
kprobe学习
查看>>