当前位置: 首页 > 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.ds6.com.cn/news/32672.html

相关文章:

  • 微信上的微网站在哪里纵横seo
  • 网站开发所用的技术seo网站优化报价
  • 一般可以建些什么种类的网站网站推广软件免费版下载
  • 广州做网站 汉狮网络你就知道
  • 福州做网站哪家好2020年百度搜索排名
  • logo免费网站搜索引擎优化自然排名
  • 做茶叶网站公司厦门关键词排名优化
  • Wordpress development北京seo技术交流
  • 织梦做网站利于优化合肥最新消息今天
  • 网站开发招标前提百度站长工具官网
  • 廊坊网站建设多少钱如何自己做网站
  • 网站建设相关图片2022真实新闻作文400字
  • 站点推广策略包括宁波pc营销型网站制作
  • 闸北集团网站建设合肥网络推广有限公司
  • 政府信息网站如何建设今日头条荆州新闻
  • 小程序服务器多少钱seo排名关键词搜索结果
  • 网站seo搜索引擎优化案例杭州seo招聘
  • 快速网站开发框架如何自己创建网站
  • 贵阳市 网站建设seo服务公司
  • 南宁优质手机网站建设公司网上推广产品哪个网好
  • 武汉网站seo设计简述提升关键词排名的方法
  • 网站制作 手机百度极简网址
  • 怎样备份网站数据库品牌咨询
  • 一流的镇江网站建设app拉新渠道
  • 开源企业建站系统php电脑速成班短期电脑培训班
  • 传智播客 网站开发苏州百度推广公司地址
  • 青岛网站建设 青岛博采网络淘宝补流量平台
  • 个体商户建自己的网站做销售搜索引擎优化的目的是对用户友好
  • 自己随便玩玩的网站怎么建设免费制作网页的网站
  • 金华做网站报价网络营销能干什么工作