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

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : novembre 2014
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Doctrine Symfony2 mise a jour table dépendante sans lien mappé
    Bonjour.
    Désolé pour le titre mais ce que je veux faire n'est pas résumable en une ligne.
    Je développe un bundle de métadonnée sous symfony2.
    L'idée est d'avoir un ensemble de table qui décrit des métadonnées (clé /valeur) typé, et que ce puisse s'appliquer a toutes les tables de ma base.
    Ambitieux, mais j'ai quasiment fini. Malheureusement je tombe sur un os, que je vous soumet.
    J'ai créé un service et un Trait.
    Ce trait est inclus dans l'entité qui doit utiliser les métadonnées.
    Ce trait défini les champs metas qui est une collection.
    Mon service recupere les evenements onLoad et onFlush pour charger les metadonnes de l'objet ou es enregistrer à la sauvegarde.
    Et ca fonctionne.
    Sauf dans 1 cas: L'objet Hote n'est pas modifé avant le persist.

    Dans le cas ou dans ma base je ne souhaite modifier qu'une des métadonnée et aucun des champs de ma tabe de base, l'évenement OnFlush est lancé, mais pas moyen de récupérer les informations des entités dont on avait demandé le persist, puis que l'unitOfWork ne retourne que les scheduled insertions et Updates, Et comme il n'y a rien a faire sur l'entité haute, ca ne retourne rien.

    La seule solution que je vois est de créer un champs update dans la base de donnée pour forcer l modification de l'hote, mais je n'aime pas cette solution.
    Quelqu'un aurait une idée?
    Merci

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : novembre 2014
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bon ben je me réponds!
    Pour retrouver la liste des objets qui ont généré l'appel à Flush il faut utiliser la fonction $uow->getIdentityMap()
    uow étant l(unit of work qu'on récupère dans l'event onFlush:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function onFlush(OnFlushEventArgs $args)
        {
            $em = $args->getEntityManager();
            $uow = $em->getUnitOfWork();
    Du coup je balaye toute ces entités et je force le persist de mon entité liée indépendement du besoin de persist de l'entité appelante.
    Si vous avez des questions, je répondrais, mais je marque cette question résolue!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mise a jour table oracle
    Par admcent dans le forum Oracle
    Réponses: 9
    Dernier message: 14/03/2007, 14h32
  2. VBA pour Acces Mise a jour table
    Par Pingouin22 dans le forum Access
    Réponses: 2
    Dernier message: 14/12/2006, 23h20
  3. Mise a jour des données sans se deconnecter
    Par djedie dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/10/2006, 12h57
  4. Mise à jour table
    Par liza06_1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 26/04/2006, 19h20
  5. pbm de mise a jour table
    Par khier dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/09/2005, 00h08

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