如何使用JPA在DB中保存类似数据的映射

时间:2012-08-15 16:26:29

标签: java jpa rdbms

我不知道如何设计这个rdbms问题:

让我们说,我有一位正在进行购买的顾客。通过购买他留下他的数据。我有第二个数据集,其中包含真实的客户数据。收集数据后,我想通过算法找到收集的客户数据到真实客户的映射。

目前还不清楚如何保存算法创建的这种映射/这些链接。

提案:

@Entity
public class Purchase{
    @OneToOne
    private Customerdata customerData;
}

@Entity
public class CustomerData{
    private String firstName;
    private String Lastname;
    private String city;
}

@Entity
public class RealCustomer{

    @OneToMany(cascade=CascadeType.ALL, mappedBy ="RealCustomer")
    private List<CustomerData> customerData = new ArrayList<CustomerData>();
    private String firstName;
    private String Lastname;
    private String city;
}

现在,我可以将假定的映射从RealCustomer数据保存到customerData列表中的客户数据。

我猜这不是最好的主意吗?

希望得到你的好建议。我可以利用真实客户数据和获取者客户数据的相似性。

请注意,我希望保留不一致的数据,例如即使城市相似('华盛顿特区'和'华盛顿'。我不想丢失这些信息,我可以再次运行匹配算法。

注意:如果你向我提供粗略的想法,我没关系。 Java / JPA-Code不是必需的。

非常感谢你!

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作

@Entity
public class Purchase{
@OneToOne
private Customer customer;
}

@Entity
public class Customer{
private String firstName;
private String Lastname;
private String city;
//Below association will only come in picture if customer has real customer data       available when you are collecting the data this way you can clearly identify and separate collected vs real customers
@OneToOne
Customer realCustomer;
}
相关问题