Wie erstelle ich einen zusammengesetzten Primärschlüssel mit GORM?

Ich habe drei domain-Klassen: Bier, Prüfung und Prüfer.

Möchte ich den Review-Tabelle zu erstellen, die eine viele zu viele Beziehung zwischen Bier und Rezensent, so will ich den primär-Schlüssel Abgeben, um eine Zusammensetzung die id-Felder aus Bier und Prüfer. Ich bin nach dieser Grails-Dokumentation.

http://grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20(GORM).html#5.5.2.5%20Composite%20Primary%20Keys

Hier sind meine Domänen-Klassen.

class Beer {
    String name
    String type
    Brewery breweryId

    static hasMany = [ reviews : Review ]

    static constraints = {
    }
}

class Reviewer {
    String screenName

    static hasMany = [ reviews : Review ]

    static constraints = {
    }
}

class Review implements Serializable {
    int score
    Beer beer
    Reviewer reviewer


    static constraints = {
    }

    static mapping = {
        id composite:['beer', 'reviewer']
    }
}

War ich immer Kompilierungsfehler, aber eine andere Antwort hier auf stackoverflow gesagt, ich brauchte, um hinzuzufügen implements Serializable. , Kümmerte sich um den Fehler, aber wenn ich mir in der Datenbank, ich bin noch immer nicht in einem zusammengesetzten Primärschlüssel.

Hier ist, was ich sehe, wenn ich schaue auf die definition der Tabelle. Ich bin mit Postgres.

       Table "public.review"
   Column    |  Type   | Modifiers 
-------------+---------+-----------
 id          | bigint  | not null
 version     | bigint  | not null
 beer_id     | bigint  | not null
 reviewer_id | bigint  | not null
 score       | integer | not null
Indexes:
    "review_pkey" PRIMARY KEY, btree (id)
Foreign-key constraints:
    "fkc84ef75823f39326" FOREIGN KEY (beer_id) REFERENCES beer(id)
    "fkc84ef7587c483106" FOREIGN KEY (reviewer_id) REFERENCES reviewer(id)

Ich würde glücklich sein, mit nur einem zusammengesetzten index mit einer unique-Einschränkung, aber ich kann nicht herausfinden, wie zu tun, dass entweder. Ich habe in der Lage, eine nicht-eindeutigen zusammengesetzten index, aber das hat zwei Probleme. Man, es ist nicht einzigartig. Zwei, die Spalten angegeben werden, die in alphabetischer Reihenfolge in den index (beer_id, reviewer_id). Ich möchte geben Sie die Reihenfolge der Spalten im index.

InformationsquelleAutor haydenmuhl | 2011-03-31

Schreibe einen Kommentar