0。前言和MyBatis相比,我更喜欢SpringDataJPA,因为它更符合面向对象的思想。但是,JPA对复杂查询的支持较弱。常见的有两种方式:第一种方式是Repository继承JpaSpecificationExecutor接口。优点是支持复杂的查询,可以避免编译时出现一些语法错误。缺点是语法晦涩难懂,学习成本太高。还有一种方式是直接写SQL,可以通过JdbcTemplate或者@Query注解进行查询。优点是简单,缺点是...先看代码:@Query(value="selectbs.*from"+"(selectt.baseid,t.basesn,t.basecreatorfullname,t.basestatus,t.basesummary,'北京'faultprovince,'北京'faultcity,"+"replace(t.INC_ResponseLevel,'response','')inc_responselevel,t.inc_happentime,t.basecreatedate,t.inc_equipmentmanufacturer,"+"t.inc_ne_name,t.inc_alarm_id,t.site_alerttype,t.alarmlevel,t.inc_alarm_desc,t.baseacceptouttime,t.basedalouttime,"+"decode(t.flagPretreatment,null,'no','notpretreated','no','yes')flagpretreatment,decode(t.flagPretreatment,null,'no','notpretreatment','no','yes')flagpretreatment2,"+"decode(nvl(t.isImportantIncident,0),1,'是','No')isimportantincident,decode(nvl(t.INC_IsEffectOP,0),1,'Yes','No')inc_iseffectop,"+"t.operationdeal,t.t0_deal,t.faultdescription,t.dealguomodo,t.inc_alarm_cleartime,t.clearinctime,"+"t.renewtime,t.baseclosedate,nvl2(t.checkdealresult,'yes','no')checkdealresult,g.jtitem1,g.jtitem2,g.jtitem3,t.reasontype"+"fromT_DEMOt,T_DEMO_MAPg"+"wheret.Sheet_type='传输网络故障处理单'andt.basestatus='archived'"+"andt.baseCloseDate>=:beginTimeandt.baseCloseDate<:endTime"+"and(t.Withdraw_Desc=g.withdraw_descort.alarmname=g.alarmname)"+"unionall"+"selectt.baseid,t.basesn,t.basecreatorfullname,t.basestatus,t.basesummary,'北京'faultprovince,'北京'faultcity,"+"replace(t.INC_ResponseLevel,'response','')inc_responselevel,t.inc_happentime,t.basecreatedate,t.inc_equipmentmanufacturer,"+"t.inc_ne_name,t.inc_alarm_id,t.site_alerttype,t.alarmlevel,t.inc_alarm_desc,t.baseacceptouttime,t.basedealouttime,"+"decode(t.flagPretreatment,null,'no','notpretreated','no','yes')flagpretreatment,decode(t.flagPretreatment,null,'no','notpretreatment','No','是')flagpretreatment2,"+"解码e(nvl(t.isImportantIncident,0),1,'是','否')isimportantincident,decode(nvl(t.INC_IsEffectOP,0),1,'是','否')inc_iseffectop,"+"t.operationdeal,t.t0_deal,t.faultdescription,t.dealguomodo,t.inc_alarm_cleartime,t.clearinctime,"+"t.renewtime,t.baseclosedate,nvl2(t.checkdealresult,'是','否')checkdealresult,w.jtitem1,w.jtitem2,w.jtitem3,t.reasontype"+"fromWF_BMCC_EOMS_ITDealFaultt,(selectdistinctc.value,c.jtitem1,c.jtitem2,c.jtitem3fromWF_Config_EL_00_NetTypec)w"+"其中(t.Sheet_type='test0'ort.Sheet_type='test1'ort.Sheet_type='test2'"+"ort.Sheet_type='test3'ort.Sheet_type='test4')andt.basestatus='已归档'"+"andt.baseCloseDate>=:beginTimeandt.baseCloseDate<:endTime"+"andt.faultclass=w.value"+")bs"+"wherenotexists(selectdp.processbaseidfromT_DEALdp,T_GROUPSdg其中dp.ProcessBaseSchema="+"'DEALFAULT'anddp.processbaseid=bs.baseidanddp.groupid=dg.groupid)",nativeQuery=true)List
