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

Doctrine2 PHP Discussion :

Clé composite avec deux clés étrangères


Sujet :

Doctrine2 PHP

  1. #1
    Membre confirmé
    Avatar de vinmar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 139
    Points : 516
    Points
    516
    Par défaut Clé composite avec deux clés étrangères
    Salut,

    Je dois mapper une entité qui représente une table qui a pour clé primaire une composition de deux clés étrangères. C'est une base Oracle et ce n'est que de la lecture.

    Doctrine sait gérer les clés composites : http://doctrine-orm.readthedocs.io/p...mary-keys.html. J'ai donc fais :

    Code xml : 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
    21
    <?xml version="1.0" encoding="utf-8"?>
    <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
     
        <entity name="Acme\IdentityBundle\Entity\IdentityAbilitation" table="identity_abilitation">
     
            <id field="identity" association-key="true"></id>
            <id field="abilitation" association-key="true"></id>
     
            <many-to-one field="identity" target-entity="Identity" inversed-by="abilitations">
                <join-column name="identity_id" referenced-column-name="identity_id" nullable="false" />
            </many-to-one>
     
            <many-to-one field="abilitation" target-entity="Abilitation">
                <join-column name="abilitation_id" referenced-column-name="abilitation_id" nullable="false" />
            </many-to-one>
     
            <!-- etc... -->
     
        </entity>
     
    </doctrine-mapping>

    Mais j'ai le message d'erreur suivant en retour :
    No identifier/primary key specified for Entity "Acme\IdentityBundle\Entity\IdentityAbilitation". Every Entity must have an identifier/primary key.
    Est-ce que cela parle à quelqu'un ?

    Merci d'avance,

  2. #2
    Membre confirmé
    Avatar de vinmar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 139
    Points : 516
    Points
    516
    Par défaut
    Je me répond : je suis passé en annotation. Ce qui donne :

    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
    21
    22
    23
    24
    25
    26
    27
     
    <?php
     
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * @ORM\Entity
     * @ORM\Table(name="identity_abilitation")
     */
    class IdentityAbilitation
    {
        /**
         * @ORM\Id @ORM\ManyToOne(targetEntity="Identity")
         * @ORM\JoinColumn(name="identity_id", referencedColumnName="identity_id")
         * 
         * @var Identity
         */
        protected $identity;
     
        /**
         * @ORM\Id @ORM\ManyToOne(targetEntity="Abilitation")
         * @ORM\JoinColumn(name="abilitation_id", referencedColumnName="abilitation_id")
         * 
         * @var Abilitation
         */
        protected $abilitation;
    }
    Je ne comprend pas pourquoi cela marche en annotation et pas en xml...

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    alors quand tu fais de yml ou xml l'erreur qui t'a renvoyé est tout à fait normal car tu n'as pas de clé primaire il aurait fallut que tu ajoutes la clé primaire en xml. en wml c'est comme pour fields il y a aussi id pour dire que c'est une clé primaire ou indexes pour les indexes

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

Discussions similaires

  1. jointure avec deux clés étrangères
    Par el_butcho dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/03/2008, 07h15
  2. Create Table avec deux clés primaires
    Par ulysse031 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 03/05/2007, 14h51
  3. insertion dans table avec plusieurs clés étrangères
    Par philippe281281 dans le forum Administration
    Réponses: 2
    Dernier message: 14/06/2006, 18h35
  4. Réponses: 2
    Dernier message: 31/05/2006, 17h52
  5. Réponses: 1
    Dernier message: 30/12/2005, 18h40

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