Przed dodaniem użytkownika do bazy chcę sprawdzić czy przypadkiem nie istnieje już użytkownik o tej nazwie, lecz jakbym tego nie zrobił dostaję NRE
metoda na pobranie użytkownika:
public static Users findByUsername(String username)
throws NoResultException {
Users user = null;
try {
user = (Users) entityManager()
.createQuery("from Users u where u.username = :username")
.setParameter("username", username).getSingleResult();
return user;
} catch (NoResultException nre) {
// Ignore this because as per your logic this is ok!
}
if (user == null) {
return null;
}
return user;
}
Fragmenty z walidatora JSF, na którym się krzaczy:
if (Users.findByUsername(username) != null) {
MessageFactory.addMessage("register_validate_username_exists",
FacesMessage.SEVERITY_ERROR, null);
return;
}
Wiem, że mógłbym pobrać listę użytkowników o danej nazwie i zamiast porównać do nulla to sprawdzić czy lista ma 0 elementów - jest inne i gustowniejsze wyjście z sytuacji?