stiamo utilizzando la modalità di sospensione con blocco ottimistico. Tutte le nostre entità hanno l'annotazione @version.migliore strategia di aggiornamento su ibernazione stalestateException
Questo funziona correttamente, se un utente tenta di salvare un oggetto che è scaduto otteniamo una stalestateexception. Nel nostro caso vorremmo dare all'utente una schermata di notifica per scartare le sue modifiche o sovrascrivere i valori correnti nel database.
Questo caso di uso comune per le eccezioni di stato obsoleto. La mia domanda è correlata a questo caso d'uso. Qual è la strategia migliore se l'utente decide di sovrascrivere la riga corrente del database con le sue modifiche? Ho consultato la guida di riferimento di ibernazione e diversi siti Web, ma tutto ciò che viene menzionato è che devi prendere tu stessa l'idea di stalestate e quindi gestire la sovrascrittura dei dati in modo programmatico. Mi chiedo se Hibernate abbia alcune utilità per semplificare questa strategia, la cosa più semplice che posso ottenere se l'utente decide di sovrascrivere con i suoi dati sta recuperando l'ultima versione dell'entità dal database, quindi copia tutti i campi modificati su questo oggetto e quindi salvare l'oggetto modificato di nuovo nel database. Ma non posso smettere di chiedermi se non c'è una soluzione più elegante.
In alcune occasioni creiamo effettivamente un 'unione ui'. Ma ci sono alcuni casi d'uso in cui i dati non sono abbastanza importanti da essere semplicemente sovrascritti, mi chiedevo se c'è qualche metodo predefinito per questo o se devi semplicemente scrivere l'algoritmo da solo. –
Non che io sappia che ho paura. –
È una bella domanda però. Ho passato un po 'di tempo a pensare al modo migliore per affrontare questa situazione! –