簡體   English   中英

如果 Postgres sql 查詢返回 json,那么如何在 spring 引導中訪問它?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM