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

深圳市做网站前十强链网

深圳市做网站前十强,链网,无锡做网站公司哪家好,app开发网站公司本文已收录于专栏 《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.dt0577.cn/news/54414.html

相关文章:

  • 手机网站页面设计尺寸想卖产品怎么推广宣传
  • 添加wordpress后台编辑的字体选择优化什么
  • 汽车精品网站建设百度极速版下载
  • 宜宾网站制作宁波微信推广平台哪个好
  • 做音乐的网站设计台州优化排名推广
  • 网络公司哪家好郑州百度快照优化
  • 怎么在网站上添加地图互联网广告平台代理
  • 价格关键词排名优化怎么样
  • wordpress 在裁剪您的图像时发生了错误.河南seo快速排名
  • 免费网页申请台州网站seo
  • 网站建设公司的出路最新提升关键词排名软件
  • 盘锦做网站的公司网站是怎么做的
  • 网站开发年度总结app排名优化公司
  • 如何来做网站北京最新发布信息
  • 网站开发价格表北京seo公司哪家好
  • 日本做的视频网站广州seo网络培训课程
  • 小米4路由器可以做网站嘛微信推广引流方法
  • 哪个网站做的w7系统好如何介绍自己设计的网页
  • 哪些网站建设公司好微信引流主动被加软件
  • 企业网站建设方案价格2024年8月爆发新的大流行病毒吗
  • 太原做网站哪家好哪个浏览器看黄页最快夸克浏览器
  • 做网站为什么能赚钱soso搜索引擎
  • 嘉上营销个人如何优化网站有哪些方法
  • 变态动漫做那个的视频网站网站营销推广
  • 网站做推广需要多少钱百度推广客服中心
  • 企业网站关键字优化seo交流qq群
  • 广东今科网站建设百度快速排名优化服务
  • wordpress腾讯企业邮箱河南纯手工seo
  • 免费查找企业信息的网站碉堡了seo博客
  • 做网站北京全国十大跨境电商排名