/ / Hibernate vzory poslucháčov udalostí - java, hibernácia

Hibernate Patterns Listeners Event - java, hibernate

Pre webovú aplikáciu Java (Struts / Spring / Hibernate) sú poslucháči udalostí dlhodobého spánku novou funkciou pre protokolovanie auditu.

Keď je potrebné zachytiť nejaké ďalšieinformácie, ako napríklad Používateľ, ktorý aktualizoval entitu, podrobnosti o tom, ktoré atribúty entity sa zmenili v porovnaní s ukážkami atribútov entity atď., existujú vzory osvedčených postupov, ktoré je možné dodržiavať?

Príklad: Pokiaľ ide o informácie súvisiace s používateľom, ak každá entita zachováva atribúty protokolu zmien (updatedBy, CreatedBy), informácie môže poskytnúť samotná entita.

Na porovnanie toho, ktoré atribúty entity sa zmeniliv porovnaní s predchádzajúcim stavom entity v databáze neexistuje iný spôsob, ako porovnanie všetkých atribútov entít pred vložením? (Toto sa javí ako zbytočné opatrenie)

odpovede:

3 pre odpoveď č. 1

Ak to potrebujete špeciálne pre audit, nie je potrebné znovu vynájsť koleso - pozrite sa na JBoss Envers


2 pre odpoveď č. 2

Na Referenčná dokumentácia dlhodobého spánku poskytuje AuditInterceptor ako príklad na implementáciu režimu dlhodobého spánku Stíhačka.

Môžete rozšíriť EmptyInterceptor a prepísať metódu boolean onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) ktorý má odkaz na aktuálny objekt a jeho ID, obsah jeho polí v aktuálnom a predchádzajúcom stave a všetky názvy polí a typy.

S aplikáciou s jarným nastavením môžete tieto zachytávače nakonfigurovať v kontexte aplikácie Jar, kde nakonfigurujete Hibernate SessionFactory.