2015-04-24 8 views
8

Vorrei avere campi: creationDate e updateDate in Entity,JPA. Come ignorare alcuni campo solo su operazione di unione

Vorrei che questi campi per essere aggiornati in dB su persist funzionamento. Ma vorrei mettere in campo creationDate non sarà aggiornato sull'operazione merge in db.

Cerco annotazioni APP in questo modo: @TransientOnMerge o @IgnoreOnMerge Ma non riesci a trovare nulla.

È possibile? Potete aiutare?

+0

La risposta è anche qui: https://stackoverflow.com/questions/29917148/jpa-columnupdatable-false-on-manytoone-related-field/29917204#29917204 – masterdany88

risposta

9

è possibile aggiungere @Column (aggiornabile = falso) al campo dell'entità.

+0

se funzionerà Sarà risolvere il mio problema. Lo controllerò. Grazie. – masterdany88

+0

Funziona come un fascino. Grazie mille. – masterdany88

+0

Questo non funziona fino in fondo. Con l'installazione 'updatable = false', l'istanza gestita passata dalla funzione' merge' ha ancora questi valori sovrascritti. L'ignoranza si verifica solo a livello di DB. Mi piacerebbe avere la versione aggiornata dell'istanza. Come lo faccio? –

1

si può lavorare con JPA EntityListener e aggiornare le date a @PrePersist o @PostPersist

PrePersist: Questo metodo di callback viene richiamato per una data entità prima rispettivi esegue gestore di entità persistono operazione per quel entità.

PostPersist: questo metodo di richiamata viene invocato per una determinata entità dopo il rispettivo Entity Manager esegue l'operazione permanente per quell'entità .

+0

È un buon modo. Nel metodo '@ PreUpdate' che potrei ottenere da db' creationDate' e impostarlo per oggetto prima dell'aggiornamento. Quale effetto sarà corretto. Ma '@Column (updatable = false) è un modo migliore che penso. – masterdany88

Problemi correlati