Ich habe Probleme mit der Projektion in Grails. Könnten Sie mir bitte helfen, sie zu überprüfen und Lösungen für mich vorschlagen?
Ich möchte Daten in vielen Tabellen abfragen, die auf beiden Eigenschaften viele Eins-zu-Eins-Beziehungen und Projektionen haben. Zum Beispiel:
%Vor%Wie kann ich also nur eine Abfrage mit Criteria (Projektion anwenden) verwenden, um Informationen zu einem bestimmten Fahrzeug zu erhalten (Marke, Preis und Eigentümername)? Ist es möglich zu verwenden:
%Vor%Kann ich eine Projektion verwenden, um Informationen einer bestimmten Person zusammen mit dem Namen aller seiner Autos zu erhalten? Zum Beispiel: [01, Perter, 01 Street A, [Mercedes, Toyota, Ducatti]]?
Eine besondere Situation: (mit obiger Personenklasse)
Eine Person kann vielen Organisationen beitreten, und eine Organisation kann eine "Eltern" -Organisation haben (und umgekehrt kann eine Organisation viele andere abhängige Organisationen haben). Aber es gibt eine Regel: Eine Person kann nur einer Kinderorganisation einer bestimmten Organisation beitreten. Also, mit einer gegebenen Organisation O und einer Person P, was ist der schnellste Weg, Informationen von P zusammen mit dem Namen der abhängigen Organisation von O zu erhalten, die P als Mitglied hat. Ich bevorzuge die Projektion von Grails.
Hier ist das Datenmodell:
%Vor%Ich bin ein Neuling mit Grails, und ich würde GORM gerne mehr verstehen. Vielen Dank für Ihre Hilfe.
Für (1) und (2) weiß ich nicht, ob es eine Möglichkeit gibt, das zu tun, was Sie wollen, mit nur einer Kriterienabfrage, aber der alternative Weg scheint einfach und natürlich zu sein. Für (1):
%Vor%Für (2)
%Vor%Über (3), es ist ein Designproblem hier. Ihr aktuelles Domänen-Design spiegelt nicht die von Ihnen beschriebene Regel wider, daher wird es schwierig, diese Einschränkung beizubehalten. Sie können das Zuordnen einer PersonOrganization-Tabelle und in childrenOrganization als Übergangseigenschaft berücksichtigen . Zum Beispiel:
%Vor%Danach können Sie eine Rückverfolgungsfunktion wie getAllAncestors () verwenden, um alle übergeordneten Hierarchie einer Organisation zu ermitteln, die in der Personenorganisationsliste nachgeschlagen wird. Es scheint nicht der beste Weg, aber das ist ein möglicher Weg.
Tags und Links grails gorm criteria projection