Вот такой вопрос.
Есть маленькая система для тестирования ПО в которой основные сущности это персистентные объекты (исп. Hibernate3).
Хочу добавить пользователей для разделения на уровне объектов.
Например, пользователь Вася имеет свою инфраструктуру объектов (или же записей в таблицах), пользователь Петя имеет свою.
Так вот интересно, как сделать так (умно) чтобы при общих методах поиска/создания/удаления каждый работал только со своими данными и не мешал другому?
При это интересно иметь и такие методы что позволяют смотреть записи любого пользователя.
Первое что приходит в голову — к каждой сущности добавить ссылку на security объект пользователя системы, но что-то, я не думаю что это хорошо (например, как еще один вариант, можно это хранить в отдельной сущности связывая id пользователя и id сущности применяя паттерн FlyWeight (приспособленец) или же создать еще одну схему в БД).
Может есть фреймворк реализующий такую функциональность и позволяющий избежать создания велосипеда?
Спасибо.