• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pobieranie obiektu innej klasy niż podany jako generyk do JpaRepositories

Object Storage Arubacloud
0 głosów
128 wizyt
pytanie zadane 18 lipca 2017 w Java przez Jonki Dyskutant (8,180 p.)

Posiadam repozytorium Spring Data

public interface UserCRUD extends JpaRepository<User, Long> {
     @Query("SELECT new com.movie.database.DTO.UserOnListDTO(username) FROM User e WHERE e.username = :username")
     Page<UserOnListDTO> findUsersOnListByUsernameContaining(@Param("username") String username, Pageable pageable);
}

w którym chcę pobrać listę użytkowników klasy UserOnListDTO, mimo, że jako generyk podany jest obiekt User. Potrzebuję osiągnąć taki efekt, ponieważ chcę tylko użytkownika username do wyświetlenia na liście. Metoda niby działa, ale tylko niby, bo mimo, że kompilator nie wywala żądnego błędy, to i tak nie zostają pobrani żadni użytkownicy. Dlaczego? IDE daje mi również znać przy 'UserOnListDTO', że ''User' domain type or valid projection interface expected here'. Może te repozytorium wcale nie powinno tak wyglądać?

1 odpowiedź

0 głosów
odpowiedź 18 lipca 2017 przez Mar Cin Dyskutant (8,900 p.)

UserOnListDTO - pomyślałbym nad inną nazwą tego DTO. Wracając do samego pytanie, to nie możesz po prostu tej odpowiedzi mapować na ten potrzebny obiekt DTO ?

komentarz 18 lipca 2017 przez Jonki Dyskutant (8,180 p.)

Zmienię na UserOnlyUsernameDTO czy coś w ten deseń. Nie mam zbytnio pomysłu. Myślałem nad tym, aby pobierać normalnie całego User, a dopiero w serwisie mapować na User tylko z username, ale wydaje mi się to trochę nieprofesjonalne. Poza tym skoro i tak pobrałbym całego User, to po co jeszcze go mapować? Szkoda czasu, a różnica w wyrzucaniu w RESTowym api obiektu User a UserOnlyUsernameDTO byłaby nieistotna.

komentarz 18 lipca 2017 przez Mar Cin Dyskutant (8,900 p.)

Szkoda czasu, a różnica w wyrzucaniu w RESTowym api obiektu User a UserOnlyUsernameDTO byłaby nieistotna.

Po to się właśnie tworzy między innymi DTO, żeby nie wyrzucać na Rest-owym endpoincie encji na front :) 

Podobne pytania

+1 głos
1 odpowiedź 182 wizyt
0 głosów
0 odpowiedzi 112 wizyt
pytanie zadane 25 lipca 2017 w Java przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 261 wizyt

92,584 zapytań

141,434 odpowiedzi

319,671 komentarzy

61,968 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...