Mysql
 sql >> Database >  >> RDS >> Mysql

Elimina i record di più di 1 anno fa

Per questo sono necessari 2 passaggi. Prima di tutto ti serve un metodo che prenda come parametro la data di cui vuoi cancellare i messaggi e non ti serve @Query annotazione a tutti.

Quindi nel tuo repository devi avere qualcosa come

    @Modifying
    public void deleteByCreatedAtBefore(Date expiryDate);

Ora nel tuo metodo di servizio, calcolerai la data e la trasmetterai in questo modo

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