Ho bisogno di consumare grandi quantità di dati da un file CSV giornaliero. Il CSV contiene circa 120K di record. Questo sta rallentando a una scansione quando si utilizza la sospensione. Fondamentalmente, sembra che l'ibernazione stia facendo una SELECT prima di ogni singolo INSERT (o UPDATE) quando si usa saveOrUpdate(); per ogni istanza che viene mantenuta con saveOrUpdate(), viene emesso un SELECT prima dell'INSERTO effettivo o di un UPDATE. Posso capire perché sta facendo questo, ma è terribilmente inefficiente per eseguire l'elaborazione di massa, e sto cercando alternativeInserimento di massa O aggiornamento con ibernazione?
Sono fiducioso che il problema di prestazioni sta nel modo in cui sto usando l'ibernazione per questo, dato che Ho un'altra versione che funziona con SQL nativo (che analizza il CSV nello stesso modo) e circonda letteralmente i cerchi attorno a questa nuova versione)
Quindi, alla domanda vera, fa un'alternativa di ibernazione a mysqls "INSERISCI ... ON DUPLICATE "esiste la sintassi?
Oppure, se scelgo di eseguire SQL nativo per questo, posso eseguire SQL nativo all'interno di una transazione di ibernazione? Significa, supporterà commit/rollbacks?
che cosa si intende per "Hibernate sta facendo un SELECT prima di ogni singolo inserto (o aggiornare) quando si utilizza saveOrUpdate()." ?potresti pubblicare il codice che stai utilizzando per salvare i dati? tra l'altro 120k records è un enorme dato! – Rakesh
Ho appena trovato un articolo su [elaborazione batch in ibernazione] (http://onetouchcode.com/2016/08/21/batch-processing-example-in-hibernate/) – Shailendra