Ecco la mia tabella CQL:Come saprò che il record è stato duplicato o è stato inserito con successo?
CREATE TABLE user_login (
userName varchar PRIMARY KEY,
userId uuid,
fullName varchar,
password text,
blocked boolean
);
Ho questo datastax java codice del driver
PreparedStatement prepareStmt= instances.getCqlSession().prepare("INSERT INTO "+ AppConstants.KEYSPACE+".user_info(userId, userName, fullName, bizzCateg, userType, blocked) VALUES(?, ?, ?, ?, ?, ?);");
batch.add(prepareStmt.bind(userId, userData.getEmail(), userData.getName(), userData.getBizzCategory(), userData.getUserType(), false));
PreparedStatement pstmtUserLogin = instances.getCqlSession().prepare("INSERT INTO "+ AppConstants.KEYSPACE+".user_login(userName, userId, fullName, password, blocked) VALUES(?, ?, ?, ?, ?) IF NOT EXIST");
batch.add(pstmtUserLogin.bind(userData.getEmail(), userId, userData.getName(), passwordEncoder.encode(userData.getPwd()), false));
instances.getCqlSession().executeAsync(batch);
Qui il problema è che se tolgo IF NOT EXIST
tutti funzionano bene, ma se rimetterlo semplicemente non lo fanno inserire i record nella tabella e non generare alcun errore.
Quindi, come faccio a sapere che sto inserendo il duplicato userName
?
Sto usando Cassandra 2.0.1
ho più affermazioni per cui sto usando batch. Qui per semplicità sto mostrando una sola affermazione – manish
Nella mia domanda originale ho fatto questa modifica 'instances.getCqlSession(). Execute (batch) .wasApplied()' e sto ricevendo 'com.datastax.driver.core.exceptions.UnavailableException : Replica insufficiente disponibile per query alla consistenza QUORUM (2 richiesta ma solo 1 viva) 'Sto eseguendo questa app sul mio sistema locale – manish
ho aggiornato la mia domanda per ulteriori chiarimenti – manish