10. července 2008

Verzování entit - JBoss Envers

Sledování historie změn není nijak výjimečný požadavek, a proto mě i celkem překvapuje, že na tomto poli nejsou (nebo jsem nenašel) skoro žádné open-source projekty, které by toto řešily. Jeden jsem však našel a jmenuje se JBoss Envers.

Nemá cenu opisovat, to co je uvedeno na webu projektu, jen bych zase uvedl pár poznámek.

Envers potřebuje pro svoji práci Hibernate a Hibernate Entity Manager.

Nyní se projekt nachází ve verzi 1.0.0.Beta2 - kromě verzování atributů entit zvládá základní vazby typu @OneToOne, @OneToMany a @ManyToOne. Zatím neumí (mělo by být ve verzi 1.1.0) takové vazby, kde je automaticky vytvořena vazební tabulka (join table), tedy např. @ManyToMany, ale mohou to být třeba i vazby @OneToMany. Do jisté míry to lze obejít tak, že si vytvořím vlastní vazební entitu a tím pak budu mít pouze vazby @OneToMany nebo @ManyToOne.

Velice příjemné je, že lze vytvořit ANT task, který umí generovat datové schéma včetně tabulek pro verzování a pro evidenci revizí.


Další zdroje:

2 komentáře:

Lukáš Vlček řekl(a)...

Vypadá to zajímavě, ale k čemu to vlastně potřebuješ? Nějak si nedokážu představit konkrétní use case.

Petr Jůza řekl(a)...

Protože potřebuji znát historii změn, mít možnost vrátit se zpátky v čase atd.
Myslím, že vše je pěkně popsané v článku na Intervalu.