我有两个表,代表用户管理特定办公室的某些应用程序的授权。一个表有办公室和用户的复合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实际上只有一个包含应用程序代码的字段)