sql >> Base de Datos >  >> RDS >> Mysql

Eliminar registros de hace más de 1 año

Para esto necesitas 2 pasos. En primer lugar, necesita un método que tome como parámetro la fecha de la que desea eliminar los mensajes y no necesita tha @Query anotación en absoluto.

Así que en tu repositorio debes tener algo como

    @Modifying
    public void deleteByCreatedAtBefore(Date expiryDate);

Ahora, en su método de servicio, calculará la Fecha y la pasará así

    public void performTweetCleanup(){
       //calculate date
       Calendar cal = Calendar.getInstance();
       Date today = cal.getTime();
       cal.add(Calendar.YEAR, -1);
       Date previousYear = cal.getTime();

       //call the method
       MyTweeterRepository.deleteByCreatedAtBefore(previousYear);
     }