Spring JPA - @OneToMany 为每个关系创建单独的表

Posted

技术标签:

【中文标题】Spring JPA - @OneToMany 为每个关系创建单独的表【英文标题】:Spring JPA - @OneToMany create separate tables per relation 【发布时间】:2019-04-30 12:04:27 【问题描述】:

我想创建一个名为

的类型
@Entity
class TestType 
   @Id
   private Long id;
   private String field1;
   private String field2;


@Entity
class Agregator
   @Id
   private Long id;
   private String name;
   @OneToMany
   private List<TestType> newTypes;
   @OneToMany
   private List<TestType> oldTypes;

我想要 3 张桌子:

聚合器 agregator_new_types 列 agregator_id; agregator_old_types 列 agregator_id;

我需要如何定义关系来获得这样的表和列?

【问题讨论】:

【参考方案1】:
@Embeddable
class TestType 
   @Id
   private Long id;
   private String field1;
   private String field2;


@Entity
class Agregator
   @Id
   private Long id;
   private String name;
   @ElementCollection
   private List<TestType> newTypes;
   @ElementCollection
   private List<TestType> oldTypes;

【讨论】:

以上是关于Spring JPA - @OneToMany 为每个关系创建单独的表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot JPA 中的 OneToMany 中为孩子获取 Null 值

JPA、Spring、Hibernate 加载实体 OneToMany 关联的问题

Spring数据休息和jpa @OneToMany重复“_links”

使用 JPA 的 Spring Boot OnetoMany

Spring JPA OneToMany 集合不删除条目

Spring boot JPA - 没有嵌套对象的 JSON 与 OneToMany 关系