具有复杂的SqlResultSetMapping的NamedNativeQueries

问题描述

我有一个非常复杂的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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...