【发布时间】:2023-04-08 08:25:02
【问题描述】:
我有 4 张桌子。一个表映射到 3 个相似的表。第一个表有一个复合主键,我想将其映射到三个表作为外键。三个子表中的所有字段都相同。
class Company{
@Id
private String companyId;
@Id
private String stateId;
private String company Name;
}
class Managers{
@Id
private String id;
//foreign key
private String companyId;
//foreign key
private String stateId;
private Int salary;
}
class SupportStaff{
@Id
private String id;
//foreign key
private String companyId;
//foreign key
private String stateId;
private Int salary;
}
数据非常庞大,因为我一次按不同的规则检索一个值。我必须把它们分开。是否可以映射它并根据休息得到它?如果我想要一个经理列表,我想从 manager 表中检索,如果我想要支持人员的详细信息,我想从 SupportStaff 表中检索。
【问题讨论】:
-
请确认我的理解是否正确,如果您为此实现创建了三个单独的模型,那么基于调用的模型只需要调用,就像调用 SupportStaff 一样,您需要的唯一模型对吗?
-
如果这是您的要求,意味着在您的模型创建中使用 fetchtype LAZY 它只会在 getter 方法调用中获取数据
-
一次,我将只从 1 个子表中获取记录
-
然后你使用 JoinColumn 和 fetchType Lazy
标签: java spring-boot hibernate jpa