JPA Query - kilka kolumn z różnych encji w left join, wynik jako json

0

Witam
nie bardzo wiem jak fachowo zapytać o mój problem, przez co też nie bardzo wiem też jak szukać rozwiązania.
Wszystko co znalazłem dotyczyło tylko otrzymania wyniku z Query.
Do rzeczy (przykład)

 select a.cola ca, b.cola cb from taba a, tabb b where a.id = b.id and a.id = :p

W zapytaniu mamy encje dwóch różnych klas, z których potrzebujemy po jednym polu
Wynik z query możemy otrzymać do kolekcji List<Object[]>, który jako JSON wygląda tak:

{"success":"true", "data":[["ca":"wara1", "cb":"warb1"],["ca":"wara2", "cb":"warb2"]]}

potrzebuje jednak formatu (kolekcji obiektów, nie tablic - tak jak bym zwracał do List<MyObject>)

{"success":"true", "data":[{"ca":"wara1", "cb":"warb1"},{"ca":"wara2", "cb":"warb2"]]}

Co można z tym zrobić? ja się poddaję ;)
Pozdrawiam

0

np

 
SELECT new pl.com.MojaClasa( a.cola, b.cola) FROM taba a, tabb b WHERE a.id = b.id AND a.id = :p
0

Dzięki, znam ta konstrukcję (mogłem wspomnieć), ale wymaga ona zbudowania konstruktora (i tym samym napisania definicji klasy)
problem powstał, bo mam potrzebę zwrócenia sporej ilości kolumn z różnych tabel (do tego GUI łapiącego te dane zmienić nie mogę)

0

ABy osiągnąć takiego JSON to albo będziesz miał obiekt lub mape. NIestety w hibernate nie masz dostępu do aliasów, więc nawet customowy serializert ci nie pomoże. Możliwe, że JPA bardziej Ci tu będzie przeszkadało mi pomagało

0

Chyba (nie jestem pewny) napisanie klasy rekordu rezultatu będzie jedynym wyjściem. Chyba że jest jakiś inny sposób zachowania typowania, które przyjdzie z zapytania (via meta)
Ewentualnie może jakaś iteracja która z tablicy zrobi obiekt (JSONArray jako JSONObject)?

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