本文主要是介绍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<InheritanceJoinedEntity, Long>, JpaSpecificationExecutor<InheritanceJoinedEntity>, Serializable {
}
public interface InheritanceJoinedOneRepository extends JpaRepository<InheritanceJoinedOneEntity, Long>, JpaSpecificationExecutor<InheritanceJoinedOneEntity>, Serializable {
}
public interface InheritanceJoinedTwoRepository extends JpaRepository<InheritanceJoinedTwoEntity, Long>, JpaSpecificationExecutor<InheritanceJoinedTwoEntity>, 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<InheritanceJoinedEntity> joined() {return inheritanceJoinedRepository.findAll();}@GetMapping("/joined/one")public List<InheritanceJoinedOneEntity> joinedOne() {return inheritanceJoinedOneRepository.findAll();}@GetMapping("/joined/two")public List<InheritanceJoinedTwoEntity> joinedTwo() {return inheritanceJoinedTwoRepository.findAll();}
启动程序,查看数据库,有三张表
分别通过三个接口写入数据,再查看数据库数据
通过接口查询数据的结果
欢迎关注微信交流
这篇关于SpringDataJPA笔记(15)--Inheritance注解详解之JOINED的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!