Doctrine 2.1 wo Fremdschlüssel-ID =?, bearbeiten: In Doctrine 2.2 behoben

8

Ich habe mir hier eine Menge Antworten angesehen, die sich auf einen ernsthaften Mangel an Funktionalität in Doctrine 2.1 beziehen, der das Ergebnis von OOP-Korrektheit sein könnte, die relationale Vernunft übertrifft.

Ich habe zwei Tabellen mit einer Beziehung von vielen zu eins, Artikeln und Mitgliedern. Ein Mitglied kann viele veröffentlichte Artikel haben. Die Anmerkung auf der Eigentümerseite ist

%Vor%

Ich möchte alle aktiven Artikel für Element 6 abrufen, dies ist eine einfache Abfrage in SQL:

%Vor%

Am Ende war ich

%Vor%

was generiert

%Vor%

was funktioniert und wahrscheinlich nicht viel langsamer ist, aber JOIN wird nicht benötigt, da ich bereits das Member-Objekt habe. Als ich es anders versuchte, bekam ich alle Artikel nicht nur aktiv.

Ich habe Antworten wie Können Sie einen Fremdschlüssel von einem Objekt in Doctine2 bekommen, ohne das Objekt zu laden? , das getEntityIdentifier verwendet und Verbesserungen in 2.2 erwähnt, wo ich IDENTITY(member) sagen könnte.

Gibt es einen vernünftigen Weg, dies in Doctrine 2.1 zu tun? Wird die Erweiterung andWhere('IDENTITY(member) = ?') im Abfrage-Generator zulassen?

Bearbeiten:

Danke an @Ocramius, - & gt; where ('IDENTITY (a.member) =? 1') funktioniert in Doctrine 2.2

    
Peter Wooster 19.02.2013, 22:06
quelle

1 Antwort

21

IDENTITY funktioniert in WHERE-Klauseln, die vom Abfragegenerator in Doctrine 2.2 generiert werden, zB

%Vor%

erzeugt das folgende SQL:

%Vor%     
Peter Wooster 19.02.2013, 23:19
quelle

Tags und Links