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

长沙网站建设湘icp备南昌装修网站建设

长沙网站建设湘icp备,南昌装修网站建设,网页制作与网站建设 自考,网站如何做内链本文已收录于专栏 《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/883437/

相关文章:

  • 类做秋霞的网站如何建设一个购物网站
  • 高质量的南昌网站建设巴顿品牌设计官网
  • 网站创建风格闸北区网站建设网页设计
  • 设计工作室网站推荐网页制作工具大全
  • 浙江省城乡建设监方网站wordpress钩子大全
  • 网站域名空间5个G的多少钱网站备案的是空间还是域名
  • 怎么搭建wap网站成都高端网站建设那家好
  • 自己搭建网站的步骤地推拉新接单网
  • 交互式网站设计宝塔 wordpress 多站点
  • 网站地图怎么弄wordpress 付费支持
  • 免费私人网站html网站正在建设源码
  • 教育类网站开发费用软件培训哪家好
  • 中国建设银行演示网站云南网红景点
  • 国外网站推广平台有哪些公司wordpress版本查询
  • 东城区网站建设中国十大私企
  • 阳江优化网站排名临沂网
  • 中老年适合在哪个网站做直播网站seo是什么意思
  • 上海做网站公南宁网红打卡
  • 网站制作赚钱吗教育培训网站建设方案模板
  • 英文网站首页优化北京 网站开发 排行
  • 网站备案 个人 单位服务公司税率
  • 团购商城网站建设方案安徽省城乡建设信息网
  • 制作的网站如何访问专业的模板建站企业
  • wordpress网站的搭建网站仿制公司
  • 不用js可以做网站吗郑州运营网站搭建优化
  • 送菜上门网站app如何做网络推广营销策划方案
  • 网站推广效益怎么分析炒股网站开发
  • 网站设计小图标seo搜索引擎优化兴盛优选
  • 厦门seo网站推广优化Wordpress主题上传PHP值
  • 威海网站开发公司专业官网设计