Spring Data. Stwierdzenie istnienia rekordu o podanej wartości kolumny.

0

Witajcie,

Mam bazę PostgreSQL i łączę się z nią. Używam Spring Data do implementacji DAO. Jak mam sprawdzić czy w bazie istnieje rekord o podanej wartości kolumny UNIQUE, która nie jest PRIMARY KEY? Chodzi o to, że użytkownik w tableli ma id PRIMARY KEY i email. Chcę przy rejestracji sprawdzić czy użytkownik o podanym email lub user name istnieje. Metoda .exists przyjmuje tylko id, a z tego co widzę to .findBy...() nie rzuca wyjątków. JEst na to jakaś metoda bez własnego query do bazy?

1

findBy nie rzuca wyjątków i bardzo dobrze. Czy to Ci przeszkadza w jej użyciu ?

1

To tłumaczę - **findBy zwróci Ci listę - jak pustą - to znaczy, że nikogo takiego nie ma (isEmpty() możesz wykorzystać , albo size() == 0 **)
else (coś tam jest) - no to znaczy, że jednak ktoś taki już zarejestrowany i wtedy nie pozwalasz zarejestrować.

Btw. to nie jest idealne i bezproblemowe rozwiązanie - ale starcza na początek.

0

@jarekr000000: Czyli jeśli w swoich .findBy zwracałem instancję klasy (zrobiłem tak ponieważ pola były UNIQUE) to jest błąd? Busi być lista? https://github.com/patrykbajos/vetclinic-project/blob/master/src/main/java/hello/UserDao.java Więc jeśli z tą listą tak zrobić to OK. Dziękuje za pomoc.

2

Tu możesz użyc lepiej Optional<User> findByEmail()
Optional to taka *zdegenerowana lista *(zawiera max jeden element - albo nic i jest empty).

1 użytkowników online, w tym zalogowanych: 0, gości: 1