Na podobny problem jsem pouzil toto reseni

v domenovem objektu jsem zadal aby se dana polozka nemenila (update =
false) (mapovani pomoci xDoclet)
/**
    * Vrátí cas zpracovani
    * @hibernate.property
    *      column = "lp_processed_time"
    *      insert = "false"
    *      update = "false"
    *      not-null = "false"
    *      type = "timestamp"
    */
   public Timestamp getProcessedTime() {
       return processedTime;
   }

a napsal jsem si specialni metodu do DAO objektu, ktera provede update
teto polozky, ale nezmeni se cislo verze a v ni se provadi

       Query q = getSession().createQuery("update ModelX"
                   + " set lp_processed_time = :lp_processed_time"
                   + " where lp_id = :id");
           q.setTimestamp("lp_processed_time",
TimeUtils.getActualTimestamp());
           q.setLong("id", model.getId());
           int res = q.executeUpdate();
           if (res != 1) {
               throw new
EntityNotFoundException(getServiceObject().getLocalizedText(MessagesKeys.common_exceptions_entityNotFound),
model);
           }

           getSession().flush();

Takto muzu s danou entitou pracovat pohodlne v aplikaci a cist i
processedTime, jedine co nemuzu je provest update nastaveneho casu
pomoci save, ale jen touto spec metodou.

Jaroslav Hurdes

Martin Beránek napsal(a):
Zdravím,

narazil jsem na následující problém:

Mám entitu Storage, která uchovává nastavení a stav logického úložného 
prostoru. Tahle entita je velmi často updatována (co sekundu) kvůli položce
"used", což je velikost zaplnění. To však úplně zablokovalo její editaci z 
webového rozhraní (entita je verzována).

Napadlo mě vytvořit novou entitu StorageUsed a tam tuhle property vytáhnout. To 
zřejmě bude fungovat, ale nedaří se mi rozumným způsobem zapsat
mapování do hbm.xml (java entity generujeme). Vztah one2one se má "simulovat" přes 
mane-to-one s unique="true", ale tohle neumí inverse, takže pak mi
vazbu "drží" Storage a ne StorageUsed. Chtěl bych, aby vazbu držela StorageUsed 
už kvůli jednoduchému update ze současného stavu (systém je v provozu)
a taky z logiky věci.

Nějaké nápady? Díky za pomoc

--
Martin Beránek
ICZ a.s.



Odpovedet emailem