公共列上的多对多关系(不在主键上)

时间:2019-04-19 16:42:46

标签: jpa many-to-many playback ebean

我正在尝试使用jpa和ebean将表映射到实体。我有两个表,它们有一个共同的列:

Table Phone:
-id
-number
-area
Table Client:
-id
-name
-area

我必须在它们之间添加多对多关系(一个电话属于多个客户端,一个客户端可以具有多个电话),但是要基于相同的area字段。

@Entity
public class Phone extends Model {
   @Id
   private long id;
   @NotNull
   private String number;
   @NotNull
   private String area;

   @ManyToMany
       @JoinTable(name = "phone_client",
            joinColumns = @JoinColumn(name = "phone_id", referencedColumnName = "id"),
            inverseJoinColumns = @JoinColumn(name = "client_id", referencedColumnName = "id"))
   private List<Client> clients; 

   // getters and setters
}
@Entity
public class Client extends Model {
   @Id
   private long id;
   @NotNull
   private String name;
   @NotNull
   private String area; 

   // getters and setters
}

我一直在尝试@JoinTable@JoinColumn@Where(但它需要静态内容),但没有任何结果。我不知道如何实现它,甚至可能实现它。我将不胜感激。

修改 也许描述还不清楚。 Phone.clients应指向Clients相同的area列表。

phone.area = client.area

0 个答案:

没有答案