Ho tabelle DB che rappresentano dipendenti e dipartimenti. Il lato server (JavaEE) contiene entità JPA che rappresentano lo stesso.
Il client è un client autonomo e comunica con il server tramite DTO. Nel mio caso, un singolo DTO contiene sia i dati Employee che Dept.
Voglio implementare il blocco ottimistico usando l'annotazione della versione su queste entità, ma c'è un problema: quando il client invia il DTO con i valori aggiornati al metodo server (webservice), il metodo server crea entità utilizzando i valori in il DTO e poi trova l'entità utilizzando il metodo find () su JPA e quindi chiama update (). Non c'è molto divario tra find () e update ().
Ma il problema è che il valore proveniente dal DTO stesso potrebbe essere obsoleto. Dal momento che sto usando un client standalone, non ho il contesto delle entità JPA del server. JPA stesso non riesce a trovare che il valore sia vecchio (perché la versione tra find () e update () corrisponde) e sovrascrive l'entità con dati non aggiornati. C'è un modo per risolvere questo problema?