首页 > 代码库 > 【Hibernate学习】 ——ORM(四)再次认识实体继承
【Hibernate学习】 ——ORM(四)再次认识实体继承
在信用办时,做失信、守信、黑名单这一块的时候,先把原来的需求看了看,紧接着就开始设计实体,这一块大部分都是相同的信息,所以就设计了一个实体,并且用一个状态标识出来是失信、守信还是黑名单。
在之后的修改中,特别不方便,每次修改这一块,这都要出问题。也就是说每一次都需要自己的实体去维护自己的状态。但是如果我们把这个状态抽出来,就变成了我们公共的去维护这些“状态”,这样就大大简化了我们的工作,我们只需要对基本表的信息进行维护就可以了。这就是单表继承。
代码:
父类:
@Entity(name="Company") @Inheritance(strategy=InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name="type",discriminatorType=DiscriminatorType.STRING) public class Company { 基本字段 }
@Entity @DiscriminatorValue(value=http://www.mamicode.com/"OnCreaditCompany")>单表继承,是一张大表中,包括了父类,子类的所有属性,通过Type来区分是哪个子类。单表继承虽然是多写了几个实体类,但是类和类之间的层次结构清晰,并且更具有面向对象的优势。相比而言,比我们设计的用一个状态字段去维护,操作起来就更方便了。
有利必有弊,我们要权衡一下,并不是所有的情况下实体继承都是适用的。但是也不能不考虑实体继承,如果是大量的数据库表的话,访问数据时将存在大量的关联表操作,效率低。
【Hibernate学习】 ——ORM(四)再次认识实体继承
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。