我有一个您使用 OIDC 登录的应用程序。所以有一个从前端到带有令牌(身份)的 Java / JPA 后端的休息调用。我有一个查找表,它为每个外部令牌 ID 分配一个内部公司 ID:
@Entity(name = "company_mapping")
public class CompanyMapping {
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
public UUID id;
public String externalId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "company_id")
public Company company;
对于公司的每一组数据条目,这个公司ID是一个外键。但我并不真正需要公司数据——或者仅在极少数特殊情况下。因此,我在考虑是否应该每次都实际检索公司/如何设计 JPA 实体,以便公司表只引用公司 ID 而不是整个公司 - 或者如果我进行惰性映射,这甚至无关紧要?
@Entity(name="employee")
public class Employee
@Id @GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
private UUID id;
private String email;
private String firstName;
private String lastName;
[...]
@ManyToOne(fetch = FetchType.LAZY)
private Company company; // TODO maybe just use the company uuid here?