Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Отслеживание изменения состояния (статуса) объекта |
Автор: Eric_Cartman 28.9.2009, 14:03 |
Вообще то вопрос к java имеет отношение такое же, как банан к помидору, и задается скорее вследствии понедельниковской тупки и нежелания думать самостоятельно, но тем не менее... =) Есть некий объект класса, у которого есть состояние (статус, переменная типа Enum). Объкет вообще говоря является persistence (отображение при помощи jpa+hibernate). На протяжении жизненного цикла у объекта меняется его состояние, причем измениний может быть не бесконечное число (вообще говоря изменения ограничены не количеством, а возможностью переходить из одного состояния в другое, + есть конечные состояния, из которых переход невозможен). В общем то сам вопрос заключается в том, как наиболее грамотно отслеживать\хранить историю изменений состояния подобного объекта? Пока в голову пришло довольно очевидное решение (опять же, никак не связанное с java): навесить триггер на изменения соответсвующего поля (статуса) в БД (ну и писать изменения в отдельную таблицу, опять же средствами БД). Ну еще есть вариант interceptor сосздать в терминах hibernate, или подцепить @EntityListeners. Проблема в том, что я подобную задачу решаю первый раз и хотелось бы выбрать оптимальный вариант. Может кто более красивые варианты знает? Или помогите выбрать из предложенных. |
Автор: Eric_Cartman 28.9.2009, 15:05 |
Походу дела появился еще один вопрос, более конкретный. Как при помощи JPA отследить что в объете (скажем, при апдейте) изменилось именно _это_ поле? |
Автор: Evgeni68 28.9.2009, 21:42 |
Посмотрите интересный проект http://jboss.org/envers/. |