Mysql
 sql >> Base de données >  >> RDS >> Mysql

Supprimer les enregistrements d'il y a plus d'un an

Pour cela, vous avez besoin de 2 étapes. Tout d'abord il vous faut une méthode qui prendra en paramètre la date dont vous voulez supprimer les messages et vous n'avez pas besoin de @Query annotation du tout.

Donc, dans votre référentiel, vous devez avoir quelque chose comme

    @Modifying
    public void deleteByCreatedAtBefore(Date expiryDate);

Maintenant dans votre méthode de service, vous allez calculer la Date et la transmettre comme ceci

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