Мне нужно применить 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 могут повторяться в обеих таблицах
- Один пользователь может быть связан с 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 и перемещение по ним?