2011-08-09 3 views

Répondre

0

Utilisez simplement autant de relations @ManyToMany que nécessaire. Donc, vous pourriez avoir quelque chose comme

/** 
* @Entity 
* @Table(name="list") 
*/ 
class List{ 
    //other definitions 

    /** 
    * @ManyToMany(targetEntity="Doc", invertedBy="flaggedDocList") 
    * @JoinTable(name="List_flagged_Doc", 
    *  joinColumns={@JoinColumn(name="flagged_doc_id", referencedColumnName="id")}, 
    *  inverseJoinColumns={@JoinColumn(name="flagged_list_id", referencedColumnName="id")} 
    *) 
    */ 
    protected $flaggedDocs; 


    /** 
    * @ManyToMany(targetEntity="Doc", invertedBy="requestedDocList") 
    * @JoinTable(name="List_requested_Doc", 
    *  joinColumns={@JoinColumn(name="requested_doc_id", referencedColumnName="id")}, 
    *  inverseJoinColumns={@JoinColumn(name="requested_list_id", referencedColumnName="id")} 
    *) 
    */ 
    protected $requestedDocs; 

    /** 
    * @ManyToMany(targetEntity="Doc", invertedBy="ownedDocList") 
    * @JoinTable(name="List_owned_Doc", 
    *  joinColumns={@JoinColumn(name="owned_doc_id", referencedColumnName="id")}, 
    *  inverseJoinColumns={@JoinColumn(name="owned_list_id", referencedColumnName="id")} 
    *) 
    */ 
    protected $ownedDocs; 
} 


/** 
* @Entity 
* @Table(name="doc") 
*/ 
class Doc{ 
    //...other definitions 
    /** 
    * @ManyToMany(targetEntity="List", mappedBy="flaggedDocs") 
    */ 
    protected $flaggedDocList; 

    /** 
    * @ManyToMany(targetEntity="List", mappedBy="requestedDocs") 
    */ 
    protected $requestedDocList; 


    /** 
    * @ManyToMany(targetEntity="List", mappedBy="ownedDocs") 
    */ 
    protected $ownedDocList; 
} 

Peut-être de spécifier @JoinTable dans la classe Docs, ne peut pas maintenant le tester.

+0

Merci, travaillé! =) –

Questions connexes