问题描述
我有一个非常复杂的SQL查询,想知道以Java实体或JSON字符串获取结果的最佳方法是什么:
SELECT
'2020-06-18 06:35:01' as 'generatedAt','2020-06-10 00:00:00' as 'startDate','2020-06-18 00:00:00' as 'endDate','[{' as 'tasks'
--,rt.id,rt.task_uid as `waUid`,r.internal_uid as `scopeUid`,u.internalUid as `assigneeUid`,rwg.value as `workGroup`,rt.created_date as `createdAt`,rt.last_modified_date as `modifiedAt`,rts.status as `status`,rtt.type as `type`,rtr.value as `resolution`,REPLACE(JSON_EXTRACT(rtd.json,"$.role"),'"','') as targetRole,'[{ }]' as 'lineItems','[{' as 'linkItems',rt.link_rbr as `link_rbr`,'}]','}]'
FROM repair r
inner join property p on r.property_id = p.id
inner join repair_status rs on r.status_id = rs.id
inner join repair_task rt on r.id = rt.repair_id
inner join repair_task_details rtd on rt.id = rtd.task_id
inner join repair_task_type rtt on rtt.id = rt.type_id
inner join repair_task_status rts on rts.id = rt.status_id
inner join userDetails ud on rt.user_id = ud.id
inner join users u on ud.login = u.username
left join repair_work_group rwg on rt.work_group_id = rwg.id
left join repair_task_resolution rtr on rt.resolution_id = rtr.id
where
r.internal_uid in ('r-3bda42cc-af5b-4476-a6aa-25b879fadf50','r-7bae1875-a630-4cc7-84e9-61efc772628a')
-- p.fmLoanNumber in ('6000332615','1740943371','4009048176')
-- and
-- r.created_at
-- between '2020-04-20'
-- and '2020-04-22'
and rtt.type in ('ScopE_TASK','BID_PROVISION','FINAL_BID','WORK_ORDER') -- WORK_ORDER
-- and rt.type_id in (4,5,7,8,10) -- WORK_ORDER
-- and rt.status_id = 5 -- COMPLETED
-- and rts.status = 'COMPLETED' -- COMPLETED
order by r.created_at desc,rt.created_date desc
;
正如您在这里看到的,我有一些嵌套的对象,从JSON字段中提取了一些JSON属性,依此类推。 我正在寻找将此查询映射到JSON结果的最佳方法。 我应该使用投影还是仅使用实体映射?还是可能存在一些更好的解决方案?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)