Ändern der primary key id, String Typ in Grails

Meine Grails 2.0 app hat ein Benutzer domain-Objekt definiert:

class User {

static mapping = {
    table "dt_user"
    columns {
      id column:'user_id', generator:'assigned', type:'string'
    }
}

Wenn ich versuche zu speichern, einen neuen Benutzer in meiner BootStrap-Datei, etwa so:

def user = new User(id: "smith").save(failOnError:true)

Bekomme ich die folgende Fehlermeldung:

| Error 2012-01-13 10:09:42,659 [main] ERROR property.BasicPropertyAccessor  - IllegalArgumentException in class: User, setter method of property: id
| Error 2012-01-13 10:09:42,660 [main] ERROR property.BasicPropertyAccessor  - expected type: java.lang.Long, actual value: java.lang.String

Ich auch versucht, die änderung der User-Klasse:

class User {
    static mapping = {
        table "dt_user"
        columns {
            id column:'user_id', generator:'assigned', type:'string', name:'id'
        }
    }

    String id 
}

welche die oben genannten Fehler Weg. Allerdings habe ich festgestellt, dass dies führte zu ids automatisch erzeugt wird, völlig ignoriert die generator: 'assigned' - Klausel.

Was mache ich hier falsch?

InformationsquelleAutor Patrick Marchwiak | 2012-01-13

Schreibe einen Kommentar