@ManyToMany без таблицы соединений (устаревшая база данных)

Мне нужно применить JPA в устаревшей базе данных с ужасным дизайном. К сожалению, изменить это невозможно. К счастью, только для чтения.

Одна из самых странных вещей, которую я обнаружил, - это отношение «многие ко многим» без таблицы соединения (или промежуточной). Это упрощение структуры таблицы:

USER                      ACCESS
----                      ------
ID int primary key        ID int primary key
NAME varchar2(20)         NAME varchar2(20)
ACCESS_GROUP int          ACCESS_GROUP int
  • столбцы ACCESS_GROUP могут повторяться в обеих таблицах
  • Один USER может быть связан с N ACCESS
  • Один ACCESS может быть связан с N USER

«Концептуально» эти таблицы должен быть отображен с классами Java следующим образом:

public class User {
    private Integer id;
    private String name;
    @ManyToMany private List<Access> accessList;
}

public class Access {
    private Integer id;
    private String name;
    @ManyToMany private List<User> userList;
}

Но я думаю, что это невозможно. Как вы думаете, как лучше всего получить доступ к этим таблицам в JPA и перемещаться по ним?

10
задан sinuhepop 23 March 2011 в 18:00
поделиться