Sto utilizzando la modalità di sospensione per l'inserimento in una tabella mysql in cui tutte le colonne sono definite come non null. Ha una chiave primaria univoca e un altro indice univoco su più colonne.org.springframework.dao.DataIntegrityViolationException causa errata di segnalazione?
sto ottenendo il seguente errore:
org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [insert into MY_TABLE(col1, col2, col3, col4, ID_) values (?, ?, ?, ?, ?)]; constraint [null]
Questo errore è nei registri dei clienti e non riesco a riprodurre il problema me, quindi non posso mettere in debug per vedere quali sono i valori in la dichiarazione di inserimento.
La mia comprensione è che "vincolo [null]" significa che un vincolo "non nullo" è stato violato. Tuttavia, guardando il mio codice, non riesco a vedere alcun modo possibile per cui qualsiasi dato potrebbe essere nullo al momento dell'inserimento, a meno che Hibernate stia tentando di inserire un ID Null (che sarebbe un bug molto brutto in ibernazione e quindi sembra improbabile).
Tuttavia, posso vedere come potrebbe accadere che venga violato un vincolo univoco. È possibile che il messaggio sia fuorviante e in effetti sto ricevendo una violazione della chiave univoca? "Constraint [null]" indica sempre che un vincolo non nullo è stato violato?
non riesco a immaginare il motivo per cui tale eccezione è causata a meno che un 'colonna non null' si cerca di dare un valore' null'. A proposito, se si sta utilizzando una versione precedente del driver JDBC, non dimenticare di sostituirlo con l'ultimo (10+). Altrimenti, causerà altri problemi anche in seguito. – Lion
Questo è mysql 5.1, non Oracle. – Dana