Domanda

Si consideri avere un'applicazione utilizzando DataNucleus con la seguente struttura di persistenza:

Si dispone di una classe che ha due attributi come creato (data) e lastUpdate (Data): Come si compila automaticamente gli attributi, con i valori appropriati quando un oggetto di questa classe sta per essere commesso? valori appropriati sarebbero impostando entrambi, creato e lastUpdate per l'ora corrente quando un oggetto viene inserito nel database e proprio aggiornamento di lastUpdate quando ha cambiato.

È stato utile?

Soluzione

ho capito io stesso ora.

È necessario creare un InstanceLifecycleListener ...

public class BasicEntityLifecycleListener implements StoreLifecycleListener {

    public void postStore(InstanceLifecycleEvent evt) {
    }

    public void preStore(InstanceLifecycleEvent evt) {
        if((PersistenceCapable)evt.getSource() instanceof BasicEntity) {
            BasicEntity obj = (BasicEntity)evt.getSource();
            Date now = new Date();
            if(JDOHelper.isNew(obj))
                obj.setCreated(now);
            obj.setLastUpdate(now);
        }
    }
}

e quindi registrarlo dentro di te PersistenceManager ...

PersistenceManager pm = pmf.getPersistenceManager();
pm.addInstanceLifecycleListener(new BasicEntityLifecycleListener(), null);

Ho trovato la soluzione nella DataNucleus accesso plaftorm manuale che io non ho riconosciuto fino ad ora. Il manuale online sembra un po 'complessa per me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top