SpringBoot Jpa 实现抽象类继承和聚合主键

2 篇文章 0 订阅
2 篇文章 0 订阅
本文介绍如何使用Java的JPA(Java Persistence API)来抽象和继承数据库表结构。通过@MappedSuperclass注解创建基类,包含共享字段如@Id, @Date等。子类继承基类并添加特定字段,使用@IdClass指定复合主键,实现数据模型的复用和扩展。示例展示了如何创建基类StcBenefit和子类StcAclineBenefitDay,以及对应的主键类DayKey。
摘要由CSDN通过智能技术生成

多个表有多个相同的字段,将相同的字段抽象出来
基类:

  1. 需加上@MappedSuperclass注解
  2. 字段上的注解例如@Id等正常加
  3. 示例:
@MappedSuperclass
@Data
public class StcBenefit {
    @Id
    String devid;
    // 更新时刻
    Date update_time;
    // 输电效益
    Double value;
    // 输电效益2
    Double valuedim;
    // 预留1
    Double f1;
    // 预留2
    Double f2;
    // 预留3
    Double f3;
}

子类:

  1. 继承抽象类
  2. 聚合主键需要实现Serializable接口
  3. 该实体对应数据库表,需要加上@Entity,@Table等正常实体需要的注解
  4. 对于聚合主键,需要定义主键类,并在@IdClass中配置
  5. 示例:
@Entity
@Table(name = "stc_acline_benefit_day")
@Data
@EqualsAndHashCode(callSuper = true)
@IdClass(DayKey.class)
public class StcAclineBenefitDay extends StcBenefit implements Serializable {
    @Id
    Date day;
}

主键类:需要实现Serializable接口

@Data
public class DayKey implements Serializable {
    String devid;
    Date day;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值