IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Persistance des donn�es Java Discussion :

Java probleme suppression date


Sujet :

Persistance des donn�es Java

  1. #1
    Membre averti
    Homme Profil pro
    Coll�gien
    Inscrit en
    Avril 2019
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Coll�gien

    Informations forums :
    Inscription : Avril 2019
    Messages : 26
    Par d�faut Java probleme suppression date
    Bonjour, j'aimerais de l'aide pour supprimer des dates en base de donn�es. J'utilise java spring, dbeaver, mariadb et docker.
    La situation :
    J'ai une table "Article" qui contient un comptage de vues (vues des visiteurs).
    Pour se faire, j'ai cette table :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE `visitor_info`
    (
        `id_visitor`             varchar(255)  NOT NULL,
        `id_article`             bigint(20)  NOT NULL,
        `date_connection`        datetime(6) NOT NULL,
        PRIMARY KEY (`id_visitor`, `id_article`),
        KEY `FK_id_articleVisitor` (`id_article`),
        CONSTRAINT `FK_id_articleVisitor` FOREIGN KEY (`id_article`) REFERENCES `article` (`id`)
    ) ENGINE = InnoDB
      DEFAULT CHARSET = utf8mb4;
    "id_visitor" est l'IP de l'utilisateur et "id_article" l'id de l'article visit� par l'internaute.
    J'ai cod� quelque chose (un code ex�cut� tout les X temps) pour qu'un visiteur ne g�n�re pas des vues sur un m�me article plus d'une fois par tranche de 24h.
    Si la date stock�e en bdd est inf�rieur � la date en param�tre (+24h de diff�rence) elle doit �tre supprim�e.

    Dans le code ci dessous, ce n'est pas 24h mais 1mn. Et le code "deleteOldVisits()" s'ex�cute toutes les minutes. C'est pour faciliter le test.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    @Component
    @EnableScheduling
    public class ScheduledTasks {
        @Autowired
        private VisitorInfoDAO visitorInfoDAO;
     
        public ScheduledTasks() {
        }
     
        @Scheduled(cron = "0 * * * * ?")
        public void deleteOldVisits() {
            System.out.println("deleteOldVisits call");
            LocalDateTime cutoffDateTime = LocalDateTime.now().minusMinutes(1);
            this.visitorInfoDAO.deleteByDateConnectionBefore(cutoffDateTime);
        }
    }
     
    @Modifying
        @Query("DELETE FROM VisitorInfo v WHERE v.date_connection <= :cutoffDate")
        void deleteByDateConnectionBefore(@Param("cutoffDate") LocalDateTime cutoffDate);
    Le probl�me c'est que cela ne marche pas. C'est �trange car � la base, date_connection est un "localdatetime.now()" donc cela signifie qu'il sait faire la conversion tout seul et que cela devrait fonctionner.
    Il arrive a convertir "2023-03-11T11:43:00.011012" (localdatetime.now() dans java) en "2023-03-11 11:43:00" dans la base de donn�es.

    EDIT:
    J'ai essay� aussi sans succ�s (j'ai renomm� date_connection en date car l'automation ne marchait pas) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            LocalDateTime cutoffDateTime = LocalDateTime.now().minusMinutes(1);
            DateTime cutoffDateTimeb = DateTime.now().minusMinutes(1);
     
            this.visitorInfoDAO.deleteByDateLessThan(cutoffDateTimeb);
            this.visitorInfoDAO.deleteByDateLessThan(cutoffDateTime);
     
        @Modifying
        void deleteByDateLessThan(LocalDateTime localDateTime);
        @Modifying
        void deleteByDateLessThan(DateTime localDateTime);

  2. #2
    Membre averti
    Homme Profil pro
    Coll�gien
    Inscrit en
    Avril 2019
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Coll�gien

    Informations forums :
    Inscription : Avril 2019
    Messages : 26
    Par d�faut
    Probl�me r�solu (ajouter un time zone sur docker et j'avais oubli� un @transactional)

Discussions similaires

  1. Probleme de date entre sql est java
    Par logiciel_const dans le forum SQL
    R�ponses: 7
    Dernier message: 31/01/2011, 11h20
  2. Problème de date
    Par rh0D'm@n dans le forum Modules
    R�ponses: 3
    Dernier message: 11/05/2004, 15h16
  3. Probleme de date
    Par poufouille dans le forum Bases de donn�es
    R�ponses: 4
    Dernier message: 19/03/2004, 14h19
  4. probleme de date (toujours et encore des dates)
    Par Yannesco dans le forum SQL
    R�ponses: 3
    Dernier message: 02/02/2004, 19h04
  5. Probleme de date
    Par danuz dans le forum XMLRAD
    R�ponses: 3
    Dernier message: 24/09/2003, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo