I need to reduce the size of this Update
method, since the SonarLint
tells me that the number of parameters is too large (It only supports 7).
Being new to Spring I wonder what can be done reduce the argument list. The idea is to pass only one object that contains all the variables.
Then how should I link each variable of the object with a value in the Query?
@Modifying
@Transactional
@Query(value = "UPDATE DETARC SET DETVAL=:PDETVAL, DETUSU=:PDETUSU, DETTOT=:PDETTOT, DETTIP=:PDETTIP, DETTI3=:PDETTI3, DETTI2=:PDETTI2, DETSUB=:PDETSUB, DETSU1=:PDETSU1, DETSEG=:PDETSEG, DETSE4=:PDETSE4, DETSE1=:PDETSE1, DETREM=:PDETREM, DETPRI=:PDETPRI, DETPR1=:PDETPR1, DETNU2=:PDETNU2, DETIN8=:PDETIN8, DETIN7=:PDETIN7, DETIN6=:PDETIN6, DETIDE=:PDETIDE, DETFEC=:PDETFEC, DETFE4=:PDETFE4, DETFE1=:PDETFE1, DETCUO=:PDETCUO, DETCTA=:PDETCTA, DETCOT=:PDETCOT, DETCOM=:PDETCOM, DETCO9=:PDETCO9, DETCO8=:PDETCO8, DETCO2=:PDETCO2, DETCO1=:PDETCO1, DETC11=:PDETC11, DETC10=:PDETC10, DETAHO=:PDETAHO WHERE DETNUM=:PDETNUM && DETNU3=:PDETNU3 && DETPAG=:PDETPAG && DETSEC=:PDETSEC ;", nativeQuery = true)
Integer Actualizar(@Param("PDETVAL") BigDecimal Valor_Conciliado, @Param("PDETUSU") String Usuario,
@Param("PDETTOT") BigDecimal Totat_Detalle, @Param("PDETTIP") BigDecimal Tipo_de_Movimiento,
@Param("PDETTI3") String Tipo_Identif_Subsidi, @Param("PDETTI2") String Tipo_de_fondo,
@Param("PDETSUB") BigDecimal Subtotal_fondo, @Param("PDETSU1") BigDecimal Subtotal_retenciones,
@Param("PDETSEG") String Segundo_Apellido, @Param("PDETSE4") BigDecimal Seguros,
@Param("PDETSE1") String Segundo_Nombre, @Param("PDETREM") BigDecimal Remunerac_Asegurable,
@Param("PDETPRI") String Primer_Apellido, @Param("PDETPR1") String Primer_Nombre,
@Param("PDETNU2") String Numero_identificaci, @Param("PDETIN8") String Indicador_2,
@Param("PDETIN7") String Indicador_3, @Param("PDETIDE") String identificador_subsid,
@Param("PDETFEC") String Fecha_de_Movimiento, @Param("PDETFE1") String Fecha_Finalización,
@Param("PDETCUO") BigDecimal Cuotas_Conciladas, @Param("PDETCTA") BigDecimal Cta_Comp_Tiempo_Serv,
@Param("PDETCOT") BigDecimal Cotizac_Obligatoria, @Param("PDETCOM") BigDecimal Comisión_fija,
@Param("PDETCO9") BigDecimal Comisión_porcentaje, @Param("PDETCO8") BigDecimal Contribución_al_IPSS,
@Param("PDETCO2") BigDecimal Cotiz_Vol_Empl, @Param("PDETCO1") BigDecimal Cot_Vol_Con_Fin_Prev,
@Param("PDETC11") BigDecimal Cotiz_Obl_Comple_Emp, @Param("PDETC10") BigDecimal Cotiz_Obl_Comple_Afi,
@Param("PDETAHO") BigDecimal Cot_Vol_Sin_Fin_Prev, @Param("PDETNUM") BigDecimal Valor32,
@Param("PDETNU3") BigDecimal Número_Planilla_Int, @Param("PDETPAG") BigDecimal Página_de_planilla,
@Param("PDETSEC") BigDecimal Secuencia, @Param("PDETFE4") String Fecha_Ult_Modificac,
@Param("PDETIN6") String Indicador_1
);
Please help me, I have been with this topic for days. Thank you