我有两个表,代表用户管理特定办公室的某些应用程序的授权 . 一个表有办公室和用户的复合pk并保存有关那些的信息,另一个表有办公室,用户和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;
}

和实体:@Entity公共类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实际上只有一个带有应用程序代码的字段)