• 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

VPS Starter Arubacloud
0 głosów
126 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ź 178 wizyt
0 głosów
0 odpowiedzi 105 wizyt
pytanie zadane 25 lipca 2017 w Java przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 242 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...