Doctrine Bugs

ottobre 14, 2011
By

Ho appena perso mezzo pomeriggio per un bug di Doctrine:

Se si definisce un’entit√† come estensione di un’altra e questa entit√† ha fra le sue propriet√† un mapping ManyToOne (ma credo anche ManyToMany o OneToMany) Doctrine genera un sql bacato solo nel caso si usi DQL

La cosa noiosa √® che l’sql generato √® corretto se si usa un find(), quindi il listing completo veniva correttamente eseguito, mentre lo show del singolo item no.

Il codice era del tipo:

/**
 * Category
 * @author Marco Albarelli 
 *
 * @ORM\Table()
 */
class Category extends Tag{
    /**
     * @var Category $parent
     * @ORM\ManyToOne(targetEntity="Category")
     */
    private $parent;

L’eccezione era cos√¨:

An exception has been thrown during the rendering of a template ("SQLSTATE[42P01]: Undefined table: 7 ERROR: missing FROM-clause entry for table "t0"
LINE 1: ...t1.parent_id AS parent_id7 FROM Category t1 WHERE t0.id = $1
^")

Alla fine per risolvere ho tolto l’extend e ho copia/incollato i campi e getters/setters della classe parent nella classe figlia

Il bug è già stato segnalato qui
La gestione dell’ereditariet√† pare che sia un pelo problematica

Tags: , , ,

One Response to Doctrine Bugs

  1. hello there, wonderful page, and a very good understand! 1 for my bookmarks.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


*