Ist es möglich, für eine Grails Domain zu haben, die keine 'id'?
Ist es möglich, eine Tabelle erstellen, die keine 'id'? Zum Beispiel, das ist meine Domäne:
class SnbrActVector {
int nid
String term
double weight
static mapping = {
version false
id generator: 'identity'
}
static constraints = {
}
}
Wenn ich dieses SQL-statement fehlschlägt:
insert into snbr_act_vector values (5, 'term', 0.5)
Ich habe in der Tabelle und 'id' ist bereits auf autoincrement. Ich denke, dass eine andere option ist, um die 'id' selbst. Oder gibt es eine andere Abhilfe für dieses? Bitte davon ausgehen, dass es keine option zum ändern der givent SQL-Anweisung.
InformationsquelleAutor firnnauriel | 2010-04-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gorm erfordert ein id-Feld zu arbeiten. Sie können fälschen eine id zugewiesen, indem eine transiente variable wie unten. Die Getter und setter Karte das nid-Feld das id-Feld.
Beim speichern eines domain-Objektes mit dieser Methode zu tun haben:
weil grails denkt ein nicht-null-id ist eine persistente Instanz.
InformationsquelleAutor Lloyd Meinholz
Müssen Sie wahrscheinlich, um anzugeben, dass nid ist deine id-Spalte.
Wenn das wirklich Ihr Ziel ist, müssen Sie möglicherweise einige zusätzliche setup in der DB. Vielleicht einen trigger zu übersetzen, die Aussage, um die definition der Tabelle? Ansonsten finde ich Luke ' s Antwort ist in der Nähe, die Sie tun können, von Grails / GORM.
InformationsquelleAutor Luke Daley
Es gibt keinen Weg, um keine "id". was Sie tun können, ändern Sie den Namen von "id" - Feld mit zugewiesenen id-generator.
InformationsquelleAutor Viral Thakkar
Versuchen Sie es mit: "id( generator: 'zugewiesen')" anstelle von "id-generator: 'Identität'" und sehen, ob das beseitigt die autoincrement-Eigenschaft aus dem "id" - Spalte in der Datenbank.
btw, es hat entfernt die autoincrement-Eigenschaft 'id'. aber was ich brauche, ist völlig zu entfernen, das 'id' - Spalte und 3 Spalten nur: nid, Laufzeit, Gewicht
InformationsquelleAutor dave
Ja in Oracle können Sie ROWID für die ID-Spalte.
InformationsquelleAutor Maciek Kreft