![](/img/trans.png)
[英]How to make an SQL Query in Spring Boot that returns an Integer at runtime?
[英]If Postgres sql query returns json, so how can access it in spring boot?
一個數據庫人在 PostgreSQL 上寫了以下查詢。 它返回這個 json:
[{"id":8,"totalDays":429,"daysRemaining":-257,"absent":[3,3,2,3,3,3,3,3,3,3,3,3],"present":[0,0,1,0,0,0,0,0,0,0,0,0],"courseBatch":"java"}]
i need to create a model class with these id's and insert this json values to that model class, plz can somebody help... if it returns result set i can handle, but its returning json, so plz gimme a proper code to overcome friends和成員。 提前致謝
詢問:
@Query(value = "WITH coursedetails AS(
SELECT
csb.CourseId,
csb.batchid,
csb.startdate ,
csb.EndDate,
gs AS Month,
uc.coursename
FROM CourseScheduledBatches csb
cross join generate_series(1,12,1)gs
JOIN UserCourses uc on
uc.courseid = csb.courseid
AND uc.userid = 54 AND uc.coursename='java'
),
finaldata AS(
SELECT
cd.CourseId,
cd.EndDate::date - cd.StartDate::date AS totaldays,
cd.EndDate::date - CURRENT_DATE AS daysRemaining,
cd.Month,
count(DISTINCT ca.TraineeId) AS TraineesPresent,
count(DISTINCT tc.TraineeId) AS totalTrainees,
cd.coursename
FROM coursedetails cd
LEFT JOIN CourseAttendence ca on
ca.courseid = cd.courseid
AND ca.batchid = cd.batchid
AND cd.Month = extract(MONTH FROM ca.StartDate)
LEFT JOIN TraineeCourses tc ON
tc.courseid = cd.courseid
AND tc.batchid = cd.batchid
GROUP BY 1, 2, 3, 4, 7
ORDER BY 4
)
SELECT json_agg(row_to_json(q.*))
FROM(
SELECT
courseid AS "id",
totaldays AS "totalDays",
daysRemaining AS "daysRemaining",
ARRAY_AGG(totalTrainees - TraineesPresent) AS "absent",
ARRAY_AGG(TraineesPresent) AS "present",
coursename AS "courseBatch"
FROM finaldata
group by 1, 2, 3, 6
)q;",nativeQuery = true)
List<Object> getAttendanceAvgBasedOnUserIdAndRolename(BigInteger userId, String batchName);
你可以這樣做:
Gson gson = new Gson();
MyType target2 = gson.fromJson(json, MyType.class);
編寫 class 使其具有與 json 字符串匹配的屬性。 使用 arrays 來缺席和出席
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.