Метод с множеством параметров (Sonarlint) - PullRequest
0 голосов
/ 25 октября 2019

Мне нужно уменьшить размер этого Update метода, поскольку SonarLint говорит мне, что число параметров слишком велико (поддерживается только 7).

Будучи новичком в Spring Интересно, что можно сделать, уменьшив список аргументов. Идея состоит в том, чтобы передать только один объект, содержащий все переменные.

Тогда как мне связать каждую переменную объекта со значением в запросе?

@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
);

Пожалуйста, помогите мне, я был с этой темой в течение нескольких дней. Спасибо

...