zoukankan      html  css  js  c++  java
  • 【Hibernate学习】 ——ORM(四)再次认识实体继承

              在信用办时。做失信、守信、黑名单这一块的时候。先把原来的需求看了看。紧接着就開始设计实体,这一块大部分都是同样的信息,所以就设计了一个实体,而且用一个状态标识出来是失信、守信还是黑名单。

     

            在之后的改动中,特别不方便。每次改动这一块,这都要出问题。也就是说每一次都须要自己的实体去维护自己的状态。

    可是假设我们把这个状态抽出来,就变成了我们公共的去维护这些“状态”,这样就大大简化了我们的工作,我们仅仅须要对基本表的信息进行维护就能够了。这就是单表继承。

     

    代码:

    父类:

    @Entity(name="Company")
    @Inheritance(strategy=InheritanceType.SINGLE_TABLE)
    @DiscriminatorColumn(name="type",discriminatorType=DiscriminatorType.STRING)
    public class Company {
                   基本字段
            }
    


    子类:

    @Entity
    @DiscriminatorValue(value="OnCreaditCompany")
    public class OnCreaditCompany extends Company {
    
    }

            单表继承。是一张大表中,包含了父类,子类的全部属性。通过Type来区分是哪个子类。单表继承尽管是多写了几个实体类,可是类和类之间的层次结构清晰,而且更具有面向对象的优势。

    相比而言,比我们设计的用一个状态字段去维护,操作起来就更方便了。

     

           有利必有弊,我们要权衡一下,并非全部的情况下实体继承都是适用的。可是也不能不考虑实体继承,假设是大量的数据库表的话,訪问数据时将存在大量的关联表操作,效率低。

  • 相关阅读:
    WebService之CXF注解之三(Service接口实现类)
    WebService之CXF注解之二(Service接口)
    WebService之CXF注解之一(封装类)
    JavaScript实现获取table中某一列的值
    sprintf,snprintf的用法(可以作为linux中itoa函数的补充)
    linux下Epoll实现简单的C/S通信
    WebService之CXF注解报错(三)
    WebService之CXF注解报错(二)
    Flex文件读取报错
    WebService之CXF注解报错(一)
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6911806.html
Copyright © 2011-2022 走看看