Próbuję stworzyć formularz w którym oprócz walidacji pustych pól pokazuje też komunikat o ponownym użyciu e-maila. Problem polega na tym że zwraca mi za dużo zapytań, nie wiem za bardzo jak to ustawić.
Błąd
query did not return a unique result: 4; nested exception is javax.persistence.NonUniqueResultException: query did not return a unique result: 4
Kod
public ModelAndView stworzpracownika (@Valid Pracownik pracownik , BindingResult bindingResult ){
ModelAndView modelAndView = new ModelAndView();
Pracownik pracownik1 = servicePracownik.findByEmail(pracownik.getEmail());
if(pracownik1 != null) bindingResult.rejectValue("email" , "blad.pracownik", "Taki email juz istnieje");
if(bindingResult.hasErrors()){
modelAndView.setViewName("rejestracja");
}
else {
modelAndView.addObject("sukces", "Udało się zarejestrować");
modelAndView.addObject("user", new Pracownik());
modelAndView.setViewName("rejestracja");
}
return modelAndView;
}
Model
@Entity
public class Pracownik {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column
private Integer idd;
@Column
@NotEmpty(message = "Imię nie może być puste")
private String imie;
@Column
@NotEmpty(message = "Nazwisko nie może być puste")
private String nazwisko;
@Column
@Transient
@Length(min = 5, message = "Hasło musi mieć więcej niż 5 znaków")
@NotEmpty(message = "Hasło nie może być puste")
private String haslo;
@Column
@NotEmpty(message = "Email nie może być pusty")
@Email(message = "Musisz podać email")
private String email;