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

Symfony PHP Discussion :

probleme merge et flush


Sujet :

Symfony PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2014
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut probleme merge et flush
    Bonjour

    Voila mon souci:
    je dois inclure un fichier xml dans une base de donnes postgresql
    un dossier possede de 1 à n situations
    une situation possede de 1 à n calcul_culture
    dans le xml dossier possede 2 situations
    <dossier>
    <situation1>
    .......
    <situation2>
    .........
    </dossier>
    --------------------------------------------------------------------------
    <code type="php">
    classe dossier
    ....
    /**
    * @ORM\OneToMany(targetEntity ="Pertazote\BaseBundle\Entity\Situation", mappedBy="dossier")
    */
    protected $situations;
    ...
    public function hydrateSortieXML($dossier, $em) {
    for ($i = 0, $size = sizeof($this->situations); $i < $size; ++$i) {

    $xml = new \DOMDocument();
    /**
    * tester existence du fichier situation
    * ajout JPF le 30/10/2013
    */
    $test_fichier = $dossier . $this->situations[$i]->getNom();
    if (file_exists ($test_fichier)) {
    $xml->load($dossier . $this->situations[$i]->getNom());

    $root = $xml->getElementsByTagName('SITUATION')->item(0);

    $situation = $this->situations[$i];
    $situation->hydrateSortieXML($root);
    $situation->setDossier($this);

    $em->merge($situation);
    }

    }
    }
    < /code>
    --------------------------------------------------------------------------
    <code type="php">
    classe situation
    ...
    /**
    * @ORM\ManyToOne(targetEntity="Pertazote\BaseBundle\Entity\Dossier", inversedBy="situations",cascade={"merge"})
    */
    protected $dossier;
    /**
    * @ORM\OneToMany(targetEntity="Pertazote\BaseBundle\Entity\CalculCulture", mappedBy="situation", cascade={"merge"})
    */
    protected $calculsCultures;
    ...
    public function hydrateSortieXML($node) {

    $this->hydrateCalculCutlureFromNode($node->getElementsByTagName('RENDEMENT_C'));

    $jours = $node->getElementsByTagName('JOUR');

    $dateReference = new \DateTime($this->switchDate($jours->item(0)->getElementsByTagName('DATE')->item(0)->attributes->getNamedItem('v')->nodeValue));

    $numeroJour = $this->getNombreJourSuivant($dateReference);

    while ($jour = $jours->item($numeroJour)) {

    $trimestre = new Trimestre();
    $trimestre->hydrateSortieXML($jour);
    $this->trimestres[] = $trimestre;

    $dateReference = $jour->getElementsByTagName('DATE')->item(0);
    $dateReference = new \DateTime($this->switchDate($dateReference->attributes->getNamedItem('v')->nodeValue));

    $numeroJour += $this->getNombreJourSuivant($dateReference);
    }
    }
    < /code>
    --------------------------------------------------------------------------
    le handler: importationhandler
    <code type="php">
    private function onSuccess($fichier) {

    $this->archive->unzip($fichier);

    $xml = new \DOMDocument();
    $xml->load($this->container->getParameter('dossierArchives') . "/extract/" . $fichier->getNom() . "/" . "dossierEntree.txt");

    $root = $xml->getElementsByTagName('DOSSIER')->item(0);

    $dossier = new Dossier();

    $dossier->hydrateEntreeXML($root, $fichier);

    $this->em->merge($dossier);

    $dossier->hydrateSortieXML($this->container->getParameter('dossierArchives') . "/extract/" . $fichier->getNom() . "/", $this->em);

    $this->em->flush();
    }
    < /code>
    --------------------------------------------------------------------------
    Le probleme est le suivant symfony me cree 2 lignes dans la table dossier et 2 lignes dans la table situations alors que logiquement je ne veux qu'une ligne dans dossier avec 2 lignes dans situations avec comme cle etrangere l'id du dossier créé.
    Merci d'avance
    JEan-Philippe

  2. #2
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 115
    Points : 75
    Points
    75
    Par défaut
    Peut-être que tu auras plus de réponses en utilisant la balise CODE ? Ca sera plus lisible je pense et les utilisateurs seront plus à même de t'aider !

Discussions similaires

  1. [SSIS] [2K5] probleme avec Merge Join
    Par aqavach dans le forum SSIS
    Réponses: 1
    Dernier message: 10/06/2009, 10h36
  2. 2K5 Merge/fusion probleme range
    Par Lejohnn dans le forum Réplications
    Réponses: 0
    Dernier message: 11/09/2008, 16h39
  3. Probleme Merge a cause du UPDATE WHERE
    Par Flipmode dans le forum SQL
    Réponses: 6
    Dernier message: 27/06/2007, 18h27
  4. Merge avec un probleme d'index
    Par Flipmode dans le forum SQL
    Réponses: 3
    Dernier message: 19/06/2007, 15h14
  5. probleme avec merge
    Par jadey dans le forum SQL
    Réponses: 9
    Dernier message: 07/06/2007, 15h35

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