Dobrý den,

 

chtěl bych se zeptat jak byste řešili následující problém. Mám v aplikaci
nějaké entity a potřebuji generovat historii všech změn.

např

 

class User {

  private String name;

  private String password;

  ...

}

 

načtu uživatele z db změním jméno a znova uložím, pak potřebuju mít někde
záznam o tom že jsem pole name změnil z hodnoty x na y v nějaký čas.

Napadlo mě.

 

class GlobalHistory{

  private String oldValue;

  private String newValue;

  private String field;

}

 

class GlobalHistoryBundle{

  private String classType;

  private Set<GlobalHistory> fields;

}

 

při na každý update v dao pak dát aspekt, který nejprve načte z db původní
entitu, porovná s tím co chci uložit a vygeneruji GlobalHistory a
GlobalHistoryBundle. Po úspěšném uložení entity uložím i tuto historii.

 

Používám technologie hibernate a spring.

Vidíte nějaké slabiny, případně máte jiný osvědčený způsob?

 

Martin Chalupa

Odpovedet emailem