JPA:具有复合半共享主键且无联接表的单向一对多关系
JPA: 如何在JPA中对以下内容进行建模:JPA:具有复合半共享主键且无联接表的单向一对多关系,jpa,composite-primary-key,jointable,Jpa,Composite Primary Key,Jointable,JPA: 如何在JPA中对以下内容进行建模: 单向一对多关系 其中,拥有实体有一个单列应用程序确定的主键,以及 其中子实体有一个复合主键,并且 其中子项主键的一部分是父项主键,并且 避免JPA生成联接表 有什么想法吗?我自己想出了办法 您需要在拥有的实体中用 @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinColumn(name = "myId", referencedColumnName = "par
- 单向一对多关系
- 其中,拥有实体有一个单列应用程序确定的主键,以及
- 其中子实体有一个复合主键,并且
- 其中子项主键的一部分是父项主键,并且
- 避免JPA生成联接表李>
有什么想法吗?我自己想出了办法
- 您需要在拥有的实体中用
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinColumn(name = "myId", referencedColumnName = "parentId") private List<ChildEntity> childEntity;
- 有关复合主键的常规规则适用于子类(用
等注释的主键类)@embeddeble
- 正如用户DN1所评论的,必须使用
注释,但必须在所属类的外部引用处指定注释@JoinColumn
- 出于某种原因,您也不能使用
而不是@PrimaryKeyJoinColumn
,否则JPA将生成联接表@JoinColumn
另一个挑战是所属类的主类也是复合类,但我还没有尝试过 如果未指定任何
@JoinColumn
,则只能获得一个联接表,因此只需确保您有一个@JoinColumn
。其余部分与此无关。我有一个想法:你能给我们展示一组实体的例子吗(甚至是草图之类的)?我特别感兴趣的是拥有实体有一个由应用程序确定的单列主键,而子实体有一个复合主键的情况。
@Id
private String parentId;