0

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

Stphane
  • 3,368
  • 5
  • 32
  • 47
Renzo Llagas
  • 115
  • 2
  • 10

0 Answers0