SpringDataJPA笔记(15)--Inheritance注解详解之JOINED
SpringDataJPA笔记(15)–Inheritance注解详解之JOINED
在JPA中使用映射注解Inheritance,有一种策略是JOINED
JOINED – 每个类分别生成一张单独的表,但是每张表只有自己的属性,没有父类的属性,通过外键关联的形式使两张表关联起来
还是简单写个demo测试一下
先写三个实体类
@Data
@Table(name = "inheritance_joined_tb")
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class InheritanceJoinedEntity implements Serializable {private static final long serialVersionUID = 8139674112977338603L;@Idprivate Long id;@Column(name = "joined_name")private String joinedName;
}
@Data
@Entity
@EqualsAndHashCode(callSuper = true)
@Table(name = "inheritance_joined_one_tb")
public class InheritanceJoinedOneEntity extends InheritanceJoinedEntity {private static final long serialVersionUID = 9042160117012026124L;@Column(name = "joined_one")private String joinedOne;
}
@Data
@Entity
@EqualsAndHashCode(callSuper = true)
@Table(name = "inheritance_joined_two_tb")
public class InheritanceJoinedTwoEntity extends InheritanceJoinedEntity {private static final long serialVersionUID = 9042160117012026124L;@Column(name = "joined_two")private String joinedTwo;
}
然后是三个repository接口类
public interface InheritanceJoinedRepository extends JpaRepository, JpaSpecificationExecutor, Serializable {
}
public interface InheritanceJoinedOneRepository extends JpaRepository, JpaSpecificationExecutor, Serializable {
}
public interface InheritanceJoinedTwoRepository extends JpaRepository, JpaSpecificationExecutor, Serializable {
}
然后写controller类用于测试
@Autowiredprivate InheritanceJoinedRepository inheritanceJoinedRepository;@Autowiredprivate InheritanceJoinedOneRepository inheritanceJoinedOneRepository;@Autowiredprivate InheritanceJoinedTwoRepository inheritanceJoinedTwoRepository;@PostMapping("/single")public InheritanceJoinedEntity single(@RequestBody InheritanceJoinedEntity inheritanceJoinedEntity) {return inheritanceJoinedRepository.save(inheritanceJoinedEntity);}@PostMapping("/joined/one")public InheritanceJoinedOneEntity joined(@RequestBody InheritanceJoinedOneEntity inheritanceJoinedEntity) {return inheritanceJoinedOneRepository.save(inheritanceJoinedEntity);}@PostMapping("/joined/two")public InheritanceJoinedTwoEntity joined(@RequestBody InheritanceJoinedTwoEntity inheritanceJoinedEntity) {return inheritanceJoinedTwoRepository.save(inheritanceJoinedEntity);}@GetMapping("/joined")public List joined() {return inheritanceJoinedRepository.findAll();}@GetMapping("/joined/one")public List joinedOne() {return inheritanceJoinedOneRepository.findAll();}@GetMapping("/joined/two")public List joinedTwo() {return inheritanceJoinedTwoRepository.findAll();}
启动程序,查看数据库,有三张表

分别通过三个接口写入数据,再查看数据库数据



通过接口查询数据的结果



欢迎关注微信交流
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
