Я делаю SQL запрос с использованием ядра Java на трех различных таблиц с LEFT JOIN и получить следующий вывод:Как эффективно группировать вывод SQL-запросов с помощью Java?
pId pName sId sName gId gName
1 p1 11 s1 111 g1
1 p1 11 s1 112 g2
2 p2 12 s2 null null
3 p3 13 s3 113 g3
Теперь я хочу, чтобы сгруппировать это следующим образом:
[{
"pId": 1,
"pname": "p1",
"sub": [{
"sId": 11,
"sName": "s1",
"grades": [{
"gId": 111,
"gName": "g1"
}, {
"gId": 112,
"gName": "g2"
}]
}]
}, {
"pId": 2,
"pname": "p2",
"sub": [{
"sId": 12,
"sName": "s2",
"grades": []
}]
}, {
"pId": 3,
"pname": "p3",
"sub": [{
"sId": 13,
"sName": "s3",
"grades": [{
"gId": 113,
"gName": "g3"
}]
}]
}]
К группе, как указано выше вышеупомянутый выход, я делаю следующий процесс в моем коде Java:
1) Перебрать все Pid
2) Перебрать все Sid в Pid
3) Перебрать все GID в Sid
Это занимает много времени, чтобы выполнить и получить желаемый результат.
Есть ли способ сделать это быстрее с минимальными итерациями?
Любая помощь/временное решение будет принята с благодарностью.
Я попытался HashMap над Pid, но до сих пор не удалось найти решение
пример кода может помочь. – Sid
Просто «закажите по pId, pname, sId, sName» в вашем SQL. Тогда вы можете легко создать JSON с помощью одного прохода через данные. –
@JackManey Точно сделал это, но все же мне нужно перебирать все строки, которые я получаю в результате запроса. – Vishwas