Oto mój stół CQL:Skąd będę wiedzieć, że rekord był duplikatem lub został pomyślnie wstawiony?
CREATE TABLE user_login (
userName varchar PRIMARY KEY,
userId uuid,
fullName varchar,
password text,
blocked boolean
);
mam ten datastax Java kod sterownika
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);
Tutaj problemem jest to, że jeśli usunąć IF NOT EXIST
wszystko działa w porządku, ale jeśli umieścić go z powrotem po prostu nie robić wstaw rekordy do tabeli ani nie zgłaszaj błędów.
Skąd będę wiedzieć, że wstawiam duplikat userName
?
Używam Cassandrę 2.0.1
Mam wiele instrukcji, dlaczego używam partii. Tutaj dla uproszczenia pokazuję tylko jedno oświadczenie – manish
W moim oryginalnym pytaniu wprowadziłem zmiany 'instances.getCqlSession(). Execute (batch) .wasApplied()' i otrzymuję 'com.datastax.driver.core.exceptions.UnavailableException : Nie ma wystarczającej repliki dostępnej dla zapytania o zgodności QUORUM (2 wymagane, ale tylko 1 przy życiu) 'Używam tej aplikacji w moim lokalnym systemie – manish
Mam zaktualizowane pytanie, aby uzyskać więcej wyjaśnień. – manish