Używam danych źródłowych JPA w moim projekcie. Gram z milionami płyt. Mam wymaganie, w którym muszę pobierać dane dla różnych tabel i budować obiekt, a następnie malować go w interfejsie użytkownika. Teraz, jak osiągnąć to moje repozytoria danych wiosennych. Czytałem, że można to osiągnąć dzięki nazwanym natywnym zapytaniom.Wiosenne dane WZP: W jaki sposób kwerenda mogą zwracać obiekty nie będące obiektami lub listę obiektów?
Jeśli nazwane zapytanie rodzimy nie zwraca podmiotowi lub listę podmiotów, możemy odwzorować wynik zapytania do prawidłowego typ zwracany przez pomocą adnotacji @SqlResultSetMapping.
Ale gdy próbuję użyć @SqlResultSetMapping
że podejmuje kolejną entityResult. Oznacza to, że rozumiem, że jest to tylko transformacja niektórych wyników zapytania do zestawu wyników jednostki, ale chcę zestaw wyników obiektów nie-obiektów.
@SqlResultSetMapping(
name="studentPercentile",
entities={
@EntityResult(
entityClass=CustomStudent.class,
fields={
@FieldResult(name="id", column="ID"),
@FieldResult(name="firstName", column="FIRST_NAME"),
@FieldResult(name="lastName", column="LAST_NAME")
}
)
}
)
@NamedNativeQuery(
name="findStudentPercentile",
query="SELECT * FROM STUDENT",
resultSetMapping="studentPercentile")
W powyższym przykładzie jestem po prostu próbuje uzyskać wyniki studenta jednostki w innym POJO „CustomStudent”, która nie jest jednostką. (Ten przykład, który próbuję wykonać tylko dla celów POC, rzeczywisty przypadek użycia jest bardzo skomplikowany, ze skomplikowanym zapytaniem zwracającym inny zestaw wyników).
Jak osiągnąć powyższy przypadek? Czy jest jakiś inny sposób poza użyciem kwerendy o nazwę, którą moja metoda repozytorium zwraca Obiekty nie będące obiektami?
Ostatnio spotkałem się z tym samym problemem i cieszę się, że ktoś napisał i dostałem rozwiązanie również! –