Осваиваю Hibernate — не дает покоя следующая задачка. Описываю, гипотетическую реализацию в реляционной области:
1. Таблица USERS — описание всех пользователей некой абстрактной системы
2. Таблица RESOURCES — описание всех ресурсов этой системы
3. Таблица RIGHTS — некий расширяемый справочник типов доступа для пользователя к ресурсу с записями типа READ, WRITE, EAT, DRINK, DELETE, CRUSH и т.д. и т.п.
Все таблицы без каких-либо foreign key, с суррогатным первичным ключем в виде числового значения.
Собственно для работы используем объединяющую таблицу типа такой
А вопрос в том — как все это хозяйство отобразить в виде POJO-классов и мэппингов Hibernate? Примеров с двумя классами с обоюдоассоциативными отношениями полно. А как объединять три сущности?
Пока придумал только создать три независимых класса, которые ничего друг о друге не знают и сделать DAO сервисы типа
rightDao.findAllByUserAndResource(int userId, int resourceId)
resourceDao.findAllByUserAndRight(int userId, int rightId)