在我的应用程序中,我有诸如组织和用户之类的实体。每个用户都属于一个组织。我想基于组织设置Ip(我将在其中保存ip范围)和地理位置(我将保存,cityName,纬度,经度和半径)对用户实施两因素身份验证。将这些设置保存为的最佳方法是一个组织。 我的想法是创建一个实体TwoFactorSettings并将IpConfigs和Geolcation作为不同的实体存储在其中。
在这种情况下,是否有更好的解决方案或更通用的结构可以帮助您?
@Entity
public class TwoFactorSettings{
private int id;
private String createdDate;
private String createdBy;
@OneToOne
private IpConfigs ipConfigs;
@OneToOne
private Geolcation geoLocation;
@OneToOne
Organisation organisation;
}
答案 0 :(得分:0)
由于每个用户都属于组织,因此您可以为具有组织实体的用户创建一对一关系。然后在组织及其设置(ipConfig和地理位置)实体之间创建关系
@Entity
public class User {
@OneToOne(targetEntity=Organization.class)
@JoinColumn(name="organization_id")
private Organization organization;
}
@Entity
public class Organization {
@OneToOne(targetEntity=IpConfigs.class)
@JoinColumn(name="ipconfig_id")
private IpConfigs ipConfigs;
@OneToOne(targetEntity=Geolcation.class)
@JoinColumn(name="geolocation_id")
private Geolcation geoLocation;
}