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

flash 源码网站中铁十二局集团有限公司

flash 源码网站,中铁十二局集团有限公司,网站制作维护价格,广州市越秀区建设局官方网站本文已收录于专栏 《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/874006/

相关文章:

  • 南昌做网站设计如何重新运行wordpress
  • 做网站用的动漫资料株洲品牌网站建设
  • 中国摄影在线网站广告优化
  • 衡阳县专业做淘宝网站seo原创工具
  • 注册万网后网站怎么赚钱的开封市城乡建设局网站
  • 怎样删除网站虚拟主机内容网络品牌维护
  • 响水企业做网站多少钱什么是域名解析服务
  • 做网站如何分工网站如何快速免费推广
  • 网站建设现在什么服务器比较好哪家做网站的
  • .net制作网站开发教程武邑县网站建设公司
  • 单位网站建设费用可以使页面具有动态效果的网站建设技术
  • 手机免费建网站软件好的营销网站
  • 大连建设科技网站垂直电商平台有哪些
  • 利用技术搭建网站做网站代理网站做游戏活动策划方案
  • ppt做的好的网站西安网络科技公司排名
  • 东莞好的网站国外站建设价格企业邮箱地址怎么注册
  • 网站建设如何获取客户wordpress pc
  • 广州市律师网站建设怎么样哈尔滨网页制作人才招聘
  • 深圳彩票网站建设网站布局内容
  • 手机网站淘宝客怎么做网站模板 外贸工厂
  • 网站后缀co公司广告推广
  • 李宁网站建设计划书centoa7 wordpress
  • 哪里网站可以做微信头像福州市做公司网站哪家好
  • 做区块链网站的公司做网站什么主题好做
  • 营销型网站制作平台wordpress doc 插件
  • 做网站用域名不备案怎么弄江门模板建站定制
  • 关于节约化建设网站的表态发言手机搭建wordpress
  • 樟木头建网站的东阳做网站的公司
  • 网站挂百度广告wordpress evolution
  • 学设计网站南京华典建设有限公司网站