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

深圳建科技有限公司网站首页seo基础入门

深圳建科技有限公司网站首页,seo基础入门,ytwzjs烟台网站建设,山东东营网络seo系列文章目录 Java知识点 文章目录 系列文章目录👉前言👉一、单表继承(Single Table Inheritance)👉1-1、原理👉1-2、使用方法👉1-3、注意事项 👉二、连接表继承(Joined…

系列文章目录

Java知识点


文章目录

  • 系列文章目录
  • 👉前言
  • 👉一、单表继承(Single Table Inheritance)
    • 👉1-1、原理
    • 👉1-2、使用方法
    • 👉1-3、注意事项
  • 👉二、连接表继承(Joined Table Inheritance)
    • 👉2-1、原理
    • 👉2-2、使用方法
    • 👉2-3、注意事项
  • 👉三、每个具体类一张表(Table Per Class)
    • 👉3-1、原理
    • 👉3-2、使用方法
    • 👉3-3、注意事项
  • 👉四、总结对比
  • 👉壁纸分享
  • 👉总结


👉前言

在 Java 中,ORM(对象关系映射)框架(如 Hibernate/JPA)处理继承关系时,主要有三种继承映射策略:单表继承(Single Table)、连接表继承(Joined Table) 和 每个具体类一张表(Table Per Class)。以下介绍它们的原理、使用方法和注意事项

博客将会介绍如何实现 Java 三种继承映射的使用。希望这篇博客对Unity的开发者有所帮助。
大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
欢迎点赞评论哦.下面就让我们进入正文吧 !


提示:以下是本篇文章正文内容,下面案例可供参考

👉一、单表继承(Single Table Inheritance)

👉1-1、原理

所有类共享一张表:整个继承层次结构的所有字段都存储在同一张数据库表中。

鉴别器列(Discriminator):使用一个特殊列(如 dtype)区分不同子类的记录。

👉1-2、使用方法

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) // 指定策略
@DiscriminatorColumn(name = "dtype") // 鉴别器列名
public class Animal {@Idprivate Long id;private String name;
}@Entity
@DiscriminatorValue("CAT") // 鉴别器值
public class Cat extends Animal {private int lives;
}@Entity
@DiscriminatorValue("DOG")
public class Dog extends Animal {private boolean canFetch;
}

表结构如下:

CREATE TABLE Animal (id BIGINT PRIMARY KEY,name VARCHAR(255),lives INTEGER,        -- Cat 的字段canFetch BOOLEAN,     -- Dog 的字段dtype VARCHAR(10)     -- 鉴别器列(值如 "CAT"/"DOG")
);

👉1-3、注意事项

  1. 优点:
    查询效率高(无 JOIN 操作)。
    简单易用。

  2. 缺点:
    数据冗余:子类特有字段在非对应记录中为 NULL。
    字段约束弱:非空约束(NOT NULL)无法用于子类特有字段(因为其他子类记录中这些字段为 NULL)。

  3. 适用场景:继承层次简单、子类字段差异小、查询性能要求高的场景。

👉二、连接表继承(Joined Table Inheritance)

👉2-1、原理

父类独立表:父类字段存储在基表中。
子类分表存储:子类特有字段存储在独立的子表中,通过主键与基表关联(一对一关系)。

👉2-2、使用方法

@Entity
@Inheritance(strategy = InheritanceType.JOINED) // 指定策略
public class Vehicle {@Idprivate Long id;private String manufacturer;
}@Entity
public class Car extends Vehicle {private int seatCount;
}@Entity
public class Truck extends Vehicle {private double payloadCapacity;
}

生成的表结构如下:

-- 基表(存储公共字段)
CREATE TABLE Vehicle (id BIGINT PRIMARY KEY,manufacturer VARCHAR(255)
);-- 子表(存储特有字段 + 关联基表主键)
CREATE TABLE Car (id BIGINT PRIMARY KEY,       -- 与 Vehicle.id 相同seatCount INTEGER,FOREIGN KEY (id) REFERENCES Vehicle(id)
);CREATE TABLE Truck (id BIGINT PRIMARY KEY,payloadCapacity DOUBLE,FOREIGN KEY (id) REFERENCES Vehicle(id)
);

👉2-3、注意事项

  1. 优点:
    符合数据库范式,无冗余字段。
    支持子类字段的非空约束。
  2. 缺点:
    查询需要 JOIN 操作,性能较低(尤其层次深时)。
    插入需操作多张表。
  3. 适用场景:数据结构规范、子类字段差异大、对冗余敏感的场景。

👉三、每个具体类一张表(Table Per Class)

👉3-1、原理

每个具体类独立成表:每个非抽象子类拥有一张独立的表,表中包含自身字段 + 所有继承的父类字段。

抽象父类无表:父类不映射到数据库表(仅用于 Java 继承)。

👉3-2、使用方法

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) // 指定策略
public abstract class Shape {@Idprivate Long id;private String color;
}@Entity
public class Circle extends Shape {private double radius;
}@Entity
public class Rectangle extends Shape {private double width;private double height;
}

生成的表结构如下:

-- 父类 Shape 无表
CREATE TABLE Circle (id BIGINT PRIMARY KEY,color VARCHAR(255),   -- 继承自 Shaperadius DOUBLE
);CREATE TABLE Rectangle (id BIGINT PRIMARY KEY,color VARCHAR(255),   -- 继承自 Shapewidth DOUBLE,height DOUBLE
);

👉3-3、注意事项

  1. 优点:
    查询具体类时效率高(无需 JOIN)。
    无冗余字段。

  2. 缺点:
    多态查询性能差:查询父类(如 Shape)需 UNION 所有子表。
    主键生成策略需用 TABLE 或 SEQUENCE(避免不同子表主键冲突)。

  3. 适用场景:多态查询少、主要操作具体子类的场景。

👉四、总结对比

策略单表继承(SINGLE_TABLE)连接表继承(JOINED)每个具体类一张表(TABLE_PER_CLASS)
表数量1 张N + 1 张(N=子类数)N 张(N=具体子类数)
数据冗余高(大量 NULL)
查询性能⭐⭐⭐⭐⭐(无 JOIN)⭐⭐(需 JOIN)⭐⭐⭐(具体类快,父类慢)
字段约束弱(不可用 NOT NULL)强(支持约束)强(支持约束)
适用场景简单继承、高性能需求结构规范、减少冗余少用父类查询、操作具体子类

通用注意事项

  1. 抽象父类:若父类是抽象的,使用 @MappedSuperclass 代替 @Entity(仅用于继承字段,不映射表)。

  2. 鉴别器列:单表继承必须用 @DiscriminatorColumn 和 @DiscriminatorValue。

  3. 多态查询:连接表继承和单表继承对多态查询支持较好。

  4. 主键策略:避免在 TABLE_PER_CLASS 中使用 IDENTITY 主键生成(不同表主键可能冲突)。

请添加图片描述


👉壁纸分享

在这里插入图片描述

👉总结

本次总结的就是 Java 三种继承映射的使用实现, 有需要会继续增加功能
如能帮助到你,就帮忙点个赞吧,三连更好哦,谢谢
你的点赞就是对博主的支持,有问题记得留言评论哦!
不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒!


文章转载自:
http://eteocles.bqrd.cn
http://biparental.bqrd.cn
http://hypogeusia.bqrd.cn
http://crispation.bqrd.cn
http://squad.bqrd.cn
http://ashcan.bqrd.cn
http://reslush.bqrd.cn
http://metrics.bqrd.cn
http://agamont.bqrd.cn
http://proslavery.bqrd.cn
http://radiumization.bqrd.cn
http://iil.bqrd.cn
http://amoeboid.bqrd.cn
http://inhibited.bqrd.cn
http://trichinous.bqrd.cn
http://reforestation.bqrd.cn
http://reluctant.bqrd.cn
http://beetling.bqrd.cn
http://slept.bqrd.cn
http://picket.bqrd.cn
http://plumelet.bqrd.cn
http://swivelpin.bqrd.cn
http://codepage.bqrd.cn
http://hematology.bqrd.cn
http://orthodontics.bqrd.cn
http://accountantship.bqrd.cn
http://exonerative.bqrd.cn
http://fibrillated.bqrd.cn
http://tightfisted.bqrd.cn
http://anthropologist.bqrd.cn
http://kionectomy.bqrd.cn
http://mergence.bqrd.cn
http://ardently.bqrd.cn
http://synoecism.bqrd.cn
http://rnwmp.bqrd.cn
http://rechoose.bqrd.cn
http://bregma.bqrd.cn
http://eht.bqrd.cn
http://gobang.bqrd.cn
http://parameter.bqrd.cn
http://unclouded.bqrd.cn
http://gev.bqrd.cn
http://bendy.bqrd.cn
http://ragwort.bqrd.cn
http://catty.bqrd.cn
http://squeak.bqrd.cn
http://inappreciative.bqrd.cn
http://matron.bqrd.cn
http://transcendency.bqrd.cn
http://trucking.bqrd.cn
http://fluorspar.bqrd.cn
http://masked.bqrd.cn
http://endocrinotherapy.bqrd.cn
http://reiterative.bqrd.cn
http://tribespeople.bqrd.cn
http://praiseworthily.bqrd.cn
http://parthenospore.bqrd.cn
http://coblenz.bqrd.cn
http://subjectify.bqrd.cn
http://perjurer.bqrd.cn
http://europatent.bqrd.cn
http://cautious.bqrd.cn
http://wimpish.bqrd.cn
http://biryani.bqrd.cn
http://caracal.bqrd.cn
http://geobiology.bqrd.cn
http://memorize.bqrd.cn
http://knowable.bqrd.cn
http://octahedron.bqrd.cn
http://nudibranchiate.bqrd.cn
http://chalcanthite.bqrd.cn
http://parve.bqrd.cn
http://flitter.bqrd.cn
http://thanatocoenosis.bqrd.cn
http://heliotype.bqrd.cn
http://nuraghe.bqrd.cn
http://isodose.bqrd.cn
http://staysail.bqrd.cn
http://whereto.bqrd.cn
http://snowshed.bqrd.cn
http://glyphograph.bqrd.cn
http://lawmaker.bqrd.cn
http://prescript.bqrd.cn
http://terdiurnal.bqrd.cn
http://rascallion.bqrd.cn
http://radioman.bqrd.cn
http://appellation.bqrd.cn
http://aiguillette.bqrd.cn
http://piperine.bqrd.cn
http://helminthiasis.bqrd.cn
http://extraviolet.bqrd.cn
http://ceramal.bqrd.cn
http://crutched.bqrd.cn
http://sclerotoid.bqrd.cn
http://perinatology.bqrd.cn
http://speechmaker.bqrd.cn
http://remote.bqrd.cn
http://discolored.bqrd.cn
http://narcotist.bqrd.cn
http://hairsplitting.bqrd.cn
http://www.15wanjia.com/news/84134.html

相关文章:

  • 网站排名首页2023年新闻热点事件摘抄
  • 做网站什么费用长沙整站优化
  • win10 wordpress南宁百度seo建议
  • 网站建设jsp百度广告代理公司
  • 有哪些做问卷调查的网站好深圳开发公司网站建设
  • led网站制作2023年适合小学生的新闻
  • php mysql网站开发试题a网络营销课程总结与心得体会
  • 网区建站google推广妙招
  • 个人可以做购物网站吗关键词优化排名用哪个软件比较好
  • 聊城网站建设科技公司阿里巴巴国际站官网
  • 有哪些网站可以做兼职公关服务
  • 宁波人流河北网站seo
  • 有好点的网站建设公司吗八百客crm系统登录入口
  • 企业网站内容策划有效的网站推广方式
  • wordpress主题 双站点合理使用说明
  • 湖北响应式网站建设费用sem投放
  • 网站建设相关推荐百度广告推广费用一年多少钱
  • 网站建设中html下载360推广登录平台
  • 揭阳网站建设网站网站建设方案书模板
  • 微商做图王官方网站如何去除痘痘效果好
  • 网站 制作公司上海网站建设费用
  • 太仓网站制作百度灰色关键词排名
  • 网站开发什么课程小红书怎么推广
  • 佛山怎么做网站seo营销怎么做
  • 用自己服务器做网站成年学校培训班
  • 大连软件公司有哪些珠海seo排名收费
  • 手机网站建设用乐云seo定制网站建设推广服务
  • 软件工程考研科目合肥网络seo
  • 腾讯云主机永久免费成都自然排名优化
  • 漳州做网站开发seo 推广教程