Соотношение «многие ко многим» в общем столбце (не в первичных ключах) - PullRequest
0 голосов
/ 19 апреля 2019

Я пытаюсь сопоставить таблицы с сущностями, используя 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
...