¿Cómo creo una clave primaria compuesta usando GORM?

Tengo tres clases de dominio: Beer, Review y Reviewer.

Quiero que la tabla Review cree una relación de muchos a muchos entre Beer y Reviewer, por lo que quiero que la clave principal de Review sea un compuesto de los campos de identificación de Beer y Reviewer. Estoy siguiendo esta documentación de Grails.

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

Aquí están mis clases de dominio.

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']
    }
}

Recibía errores de compilación, pero otra respuesta aquí en stackoverflow decía que necesitaba agregarimplements Serializable. Eso solucionó el error, pero cuando miro en la base de datos, todavía no obtengo una clave primaria compuesta.

Esto es lo que veo cuando veo la definición de la tabla. Estoy usando 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)

Estaría contento con solo un índice compuesto con una restricción única, pero tampoco puedo entender cómo hacerlo. He podido hacer un índice compuesto no único, pero esto tiene dos problemas. Uno, no es único. Dos, las columnas se especifican en orden alfabético en el índice (beer_id, reviewer_id). Me gustaría especificar el orden de las columnas en el índice.

Respuestas a la pregunta(3)

Su respuesta a la pregunta