JBoss Envers ManyToOne Revisione
-
27-10-2019 - |
Domanda
ipotetico: Ho due modelli: Author
e Book
. Il modello Book
ha una relazione molti-a-uno per Author
.
diciamo Let che voglio solo per controllare le modifiche apportate a Book
. Ho annotare la classe con @Audited
, ma ottengo un errore lamentando che la proprietà getAuthor()
di Book
non può essere verificata in quanto Author
non è controllata.
Perché è questo? Voglio verifica se l'autore del libro cambia, ma non mi importa se i cambiamenti autori soprannome. Non ha senso per avere un tavolo author_aud
nel mio database, ma a quanto pare questo non è possibile se non vado avanti e audit del modello Author
o specificamente annotare la proprietà getAuthor()
con una @Audited(...)
con una proprietà di ignorare il rapporto. Tuttavia, se faccio questo non sarò più in grado di controllare il rapporto libro / autore.
Soluzione
probabilmente non sarà in grado di controllare il libro ed è autore rapporto se l'autore non viene controllato. Forse si dovrebbe cambiare il modo in cui la relazione viene mappata: E 'strano avere un libro "propria" si dell'autore: avrei fatto una relazione ManyToOne unidirectionnal da autore ad i suoi libri. Con questa concezione, si sarà in grado di verificare i libri senza revisione gli autori.
Altri suggerimenti
Aggiungi questa mappatura alla relazione ManyToOne.
@Audited (targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)