Spring 通过第三个实体关联两个实体

Spring 通过第三个实体关联两个实体,spring,hibernate,jpa,Spring,Hibernate,Jpa,我试图找出如何使用两个实体的共同点来关联两个实体。我的模型如下: A Customer has a list of Codes A Promotion has a list of Codes A Code has a list of Customers and a list of Promotions 我想在促销实体中添加一份客户名单。此列表将包括所有至少拥有与促销中相同代码的客户,他们可以拥有更多代码。理想情况下,我想将其建模为一个领域,但我不确定这是否可行。我没有找到任何信息 能做到吗 谢

我试图找出如何使用两个实体的共同点来关联两个实体。我的模型如下:

A Customer has a list of Codes
A Promotion has a list of Codes
A Code has a list of Customers and a list of Promotions
我想在促销实体中添加一份客户名单。此列表将包括所有至少拥有与促销中相同代码的客户,他们可以拥有更多代码。理想情况下,我想将其建模为一个领域,但我不确定这是否可行。我没有找到任何信息

能做到吗

谢谢,

您可以定义

客户实体。 与客户有@ManyToMany关系的代码实体。如果客户即使在没有促销的情况下也可以拥有代码,则需要执行此操作。 与客户有@manytoman关系的促销实体 和带有代码的@ManyToMany。
最后,我做了以下几点

public Set<Customers> getCustomers(){
    Set<Customers> customers = null;
    for (Code c : codes)
        if(customers == null)
            customers = c.getCustomers();
        else
            customers.retainAll(c.getCustomers());


    return customers;
}

我对代码进行了一次急切的检索,并在代码中对客户进行了急切的检索。到目前为止,它的性能很好,但我更希望所有这些都在DBMS中计算,而不是在控制器端。仍然没有找到一个很好的方法。

是的,那么,问题是什么,你需要一个连接查询…发布你如何在模型中映射这些家伙。与客户的许多人必须基于他们在促销中包含所有代码的条件,如果促销有10,客户必须至少拥有这些才能成为促销活动的客户。因此,我相信这并不是一个传统的许多方法,除非有一种方法可以将我所说的映射到这个条件。您可能将业务规则与您的实体关系设计相混合。