Grails: Projektion auf viele Tabellen?

Ich habe einige Probleme mit der Projektion in Grails. Könnten Sie mir bitte helfen diese überprüfen und Lösungen vorschlagen für mich?

  1. Ich möchte die Abfrage der Daten auf viele Tabellen, die viele-zu-eins-Beziehung und Projektion auf einige Eigenschaften auf Sie beide. Zum Beispiel:

    class Person {
        int id
        String name
        String address
        static hasMany = [cars : Car]
    }
    
    class Car {
       int id
       String brand
       long price
       Person owner
       static belongsTo = [owner : Person]
    }

    So, wie kann ich mit nur einer Abfrage withCriteria (gelten Projektion), um Informationen zu bekommen, die das angegebene Auto (gehören Marke, Preis und name des Eigentümers)? Ist es möglich, zu verwenden:

    Car.withCriteria {
         projections {
             property("brand")
             property("price")
             property("owner.name")
        }
        eq("id", carId)
    }
  2. Kann ich eine Projektion, um Informationen zu bekommen von einem bestimmten person zusammen mit dem Namen der alle seine Autos? Zum Beispiel: [01, Perter, 01 Street Ein, [Mercedes, Toyota, Ducatti]]?

  3. Einer besonderen situation: (mit den oben Person-Klasse)

    Eine person kann kommen viele Organisation und eine Organisation haben kann, einem "übergeordneten" Organisationen (und vice versa), einer Organisation können viele andere abhängen, Organisationen). Aber es gibt eine Regel: eine person nur beitreten kann, nur eine untergeordnete Organisation einer bestimmten Organisation. So mit einer bestimmten Organisation O und eine person P, was ist der Schnellste Weg, um Informationen von P zusammen mit den Namen der hing Organisation O die P als Mitglied. Ich benutze lieber Grails-Projektion.

    Hier die Daten Modell:

    class Person {
        int id
        String name
        String address
        static hasMany = [joinedOrgs : Organization] 
    }
    
    class Organization {
        int id
        String name
        Organization parentOrg
        static hasMany = [members : Person, childOrgs : Organization]
    }

Ich bin ein Neuling mit Grails, und ich würde gerne verstehen, GORM vieles mehr. Ich danke Ihnen so sehr für Ihre Hilfe.

InformationsquelleAutor | 2011-04-24
Schreibe einen Kommentar