Auto-Increment-Spalte Mit Hibernate
Habe ich diese situation, wo ich zu Inkrementieren einer nicht-Primärschlüssel-Spalte beim einfügen eines neuen Datensatzes. Diese Spalte ist kein primary key. Allerdings hat es eine unique-Einschränkung. Wie kann ich mit Hibernate Annotations zu erreichen "auto increment" - in diesem bestimmten Spalte? Ich weiß, es kann getan werden, ganz einfach für Primärschlüssel, aber ich will genau das gleiche zu tun für eine nicht-Primärschlüsselspalte (d.h. ohne Verwendung von @Id-annotation?)
--Danke
InformationsquelleAutor Ace | 2014-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Soweit ich sehen kann, können Sie mit der Hibernate-spezifische Annotationen
@Generated
. Ihr Bereich würde in etwa so Aussehen:Lesen Sie die verschiedenen Arten von Strategien hier.
Ich bin 90% sicher, das sollte funktionieren. Wenn nicht, dann lass es mich wissen.
InformationsquelleAutor JamesENL
Ich diese überprüft und Hibernate erlauben nur eine auto Spalte (pro Tisch) und es muss als Schlüssel definiert.
Neben der primary-key-Spalte, Wenn Sie versuchen, verwenden Sie mehr als eine Spalte "auto" erhalten Sie die Fehlermeldung :
[Fehler] o.h.t.h.SchemaUpdate - Incorrect table definition; es kann nur eine auto Spalte und es muss als Schlüssel definiert.
Können Sie Sequenz oder einer Tabelle-verwenden Sie es als Sequenz und speichern den Rückgabewert, die als seq.
einfaches Beispiel-Tabelle als Sequenz:
InformationsquelleAutor Alon Asulin
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
es funktioniert gut für mich
InformationsquelleAutor RidLam