当前位置: 首页 > news >正文

黄山建设厅官方网站网站个性化制作

黄山建设厅官方网站,网站个性化制作,网上商城搭建,成都系统软件定制开发本文已收录于专栏 《Java》 目录 背景介绍概念说明DiscriminatorValue 注解:DiscriminatorColumn 注解:Inheritance(strategy InheritanceType.SINGLE_TABLE) 注解: 实现方式父类子类执行效果 总结提升 背景介绍 在我们项目开发的过程中经常…
本文已收录于专栏
《Java》

目录

  • 背景介绍
  • 概念说明
    • @DiscriminatorValue 注解:
    • @DiscriminatorColumn 注解:
    • @Inheritance(strategy = InheritanceType.SINGLE_TABLE) 注解:
  • 实现方式
    • 父类
    • 子类
    • 执行效果
  • 总结提升

背景介绍

  在我们项目开发的过程中经常会用到继承多态。当我们向数据库中保存数据的时候保存的都是子类的信息,用了一个字段>来区分数据是什么类型的,也就是说当前这条数据是哪个子类的。但是我们从数据库中查询数据的时候往往不清楚查询出来的是哪个子类类型的数据,所以统一使用父类类型的对象去接收。这样当我们使用从数据库中获取出来的对象的时候就是父类类型。当使用这个对象去执行方法的时候就无法达到多态的效果。对此我们可以使用JPA给我们提供的注解来解决这个问题。

概念说明

  @DiscriminatorValue、@DiscriminatorColumn 和 @Inheritance(strategy = InheritanceType.SINGLE_TABLE) 这三个注解是在JPA中用于处理继承关系的。

@DiscriminatorValue 注解:

  「作用 」:用于指定实体类在继承关系中的具体子类的标识值。
  「使用 」:在子类的类级别上使用 @DiscriminatorValue 注解,并传入一个字符串参数,表示该子类在数据库中的标识值。
  「示例 」:假设有一个父类 Animal,有两个子类 Cat 和 Dog,可以在 Cat 类上使用 @DiscriminatorValue(“cat”) 注解,表示 Cat 类在数据库中的标识值为 “cat”。

@DiscriminatorColumn 注解:

   「作用 」:用于指定父类在数据库中存储子类类型信息的列。
   「使用 」:在父类的类级别上使用 @DiscriminatorColumn 注解,可以指定列的名称和类型。
   「示例 」:在 Animal 类上使用 @DiscriminatorColumn 注解,可以指定一个名为 “animal_type” 的列,用于存储子类的类型信息。

@Inheritance(strategy = InheritanceType.SINGLE_TABLE) 注解:

  「作用 」:用于指定继承关系的策略,将多个子类的数据存储在同一个表中。
  「使用 」:在父类的类级别上使用 @Inheritance 注解,并传入一个 InheritanceType.SINGLE_TABLE 参数。
  「示例 」:在 Animal 类上使用 @Inheritance(strategy = InheritanceType.SINGLE_TABLE) 注解,表示使用单表继承策略,将父类和所有子类的数据存储在同一个表中。

实现方式

父类

  在父类中添加@Inheritance(strategy = InheritanceType.SINGLE_TABLE)、
@DiscriminatorColumn(name = “GrainType”)和@Entity。@Inheritance注解中传入的参数是指将父类和所有的子类都在一张表中。@DiscriminatorColumn注解中传入的参数是指使用那个属性来标识存储子类类型的信息。@Entity注解是标识这个类是一个实体类。

@Service
@Entity
@Table(name = "ContentGrain")
/**将父类和所有子类的属性映射到同一张数据表中。通过GrainType来区分不同的实体类型。*/
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "GrainType")
public class ContentGrain implements Serializable {

父类中会有一个grainType字段用来标识是那个子类类型。
在这里插入图片描述

子类

使用@DiscriminatorValue注解用来指定实体类在继承关系中的具体子类的标识值。

@Entity
@Service
@DiscriminatorValue("challenge")
public class Challenge extends ContentGrain implements Serializable {
@Entity
@Service
@DiscriminatorValue("topic")
public class Topic extends ContentGrain implements Serializable {

执行效果

在这里插入图片描述

总结提升

  通过以上注解的使用,可以实现将父类和子类的数据存储在同一个表中,并在查询时正确还原子类的对象。

  @DiscriminatorValue 注解用于指定子类的标识值,@DiscriminatorColumn 注解用于指定存储子类类型信息的列,@Inheritance(strategy = InheritanceType.SINGLE_TABLE) 注解用于指定继承关系的策略,将多个子类的数据存储在同一个表中。


🎯 此文章对你有用的话记得留言+点赞+收藏哦🎯
http://www.yayakq.cn/news/784315/

相关文章:

  • 西部数码网站备案核验单XART视频库WordPress
  • app需要申请网站的子域名吗北京新机场建设指挥部网站
  • 万州那家做网站广东网站建设微信网站定制
  • 张家口网站seo企业官网优化
  • 龙岩网站建设行情企业网站建立费用 作什么科目
  • 哈尔滨制作网站的公司如何查询网站的服务器
  • 大学生毕业生旧书电商网站开发学软件工程可以从事什么工作
  • 山西大同网站建设价格医疗网站建设策划书
  • 网站建设 博采网络 学校网站建设整体设计流程
  • 公司内部网站一般都怎么维护微信小说网站开发
  • uc投放广告网站要自己做吗中国电信网站备案系统
  • 企业静态网站陕西省住房与建设厅网站
  • 做营销网站那个好企业seo网络营销
  • wordpress网站500免费供求信息发布
  • 网站设计培训学校有哪家赤峰网站建设哪家好
  • 潍坊市网站网站模板免费
  • 百度创建网站模板建网站哪个品牌好
  • 沈阳网站制作聚艺科技免费小程序网站
  • 做戒烟网站素材本地wordpress 固定连接
  • 网站系统规划报告企业网站建设管理平台
  • 网站建设开发哪些开发语言国外最大的设计网站有哪些方面
  • 上海工程建设造价信息网站免费建网站平台哪个好
  • 山西集团网站建设ccyy切换路线专线
  • 做网站需要源码吗公司网站手机版
  • 域名网站备案茂名模板建站哪家好
  • 山西网络公司公司seo刷关键词排名免费
  • html5在线网站中国男女做网站
  • 自己做一个网站需要什么中国字体设计网
  • 线上问诊网站建设网站上传照片失败
  • 网站开发 -(广告)公司装修便宜