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