JPA OneToMany在父级和子级中使用复合键

时间:2017-08-18 10:13:33

标签: jpa

我有两个表,代表用户管理特定办公室的某些应用程序的授权。一个表有办公室和用户的复合pk,并保存有关那些的信息,另一个表有office,user和applicationId的复合键(表2没有其他信息)

+---------------+           +---------------+  
|    Table1     |           |    Table2     |
+---------------+           +---------------+  
| - userId      | 1       n | - userId      | 
| - officeId    | <-------> | - officeId    | 
| <other data>  |           | - applicId    |    
+---------------+           +---------------+  

我如何在JPA中表示这一点?目前我有这个:

@Data
@Embeddable
public class Table1_pk implements Serializable {  
    private BigDecimal officeId;
    private String userId;
}


@Data
@Embeddable
public class Table2_pk implements Serializable {
    @Embedded
    private Table1_pk table1pk;

    private int applicId;
}

和实体:     @实体     公共类Table1实现Serializable {         @EmbeddedId         private Table1_pk table1Id;     }

@Entity
public class Table2 implements Serializable {
    @EmbeddedId
    private Table2_pk table2Id;
}

到目前为止这是对的吗?我如何表示两个表具有的oneToMany关系?

两个表上的关键字段名称是相同的(因此userId在DB中的table1和table2上都被称为“userId”,table2实际上只有一个包含应用程序代码的字段)

0 个答案:

没有答案