Hibernate: many-to-many, 3 таблицы
От: mazurkin http://mazurkin.info
Дата: 08.11.07 17:32
Оценка:
Осваиваю Hibernate — не дает покоя следующая задачка. Описываю, гипотетическую реализацию в реляционной области:

1. Таблица USERS — описание всех пользователей некой абстрактной системы
2. Таблица RESOURCES — описание всех ресурсов этой системы
3. Таблица RIGHTS — некий расширяемый справочник типов доступа для пользователя к ресурсу с записями типа READ, WRITE, EAT, DRINK, DELETE, CRUSH и т.д. и т.п.

Все таблицы без каких-либо foreign key, с суррогатным первичным ключем в виде числового значения.

Собственно для работы используем объединяющую таблицу типа такой

create table USER_RESOURCE_RIGHT (
USERID integer foreign key.....
RESOURCEID ....
RIGHTID ....
primary key (USERID, RESOURCEID, RIGHTID)
)

Вроде все просто и понятно.

А вопрос в том — как все это хозяйство отобразить в виде POJO-классов и мэппингов Hibernate? Примеров с двумя классами с обоюдоассоциативными отношениями полно. А как объединять три сущности?

Пока придумал только создать три независимых класса, которые ничего друг о друге не знают и сделать DAO сервисы типа

rightDao.findAllByUserAndResource(int userId, int resourceId)

resourceDao.findAllByUserAndRight(int userId, int rightId)

и т.д.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.