Ich gehe davon aus, dass Sie sich auf den JPA @GeneratedValue beziehen.
Die Annotation @GeneratedValue
teilt dem ORM mit, wie der Wert dieses Feldes ermittelt werden soll.
Zum Beispiel:
@Id
@GeneratedValue(strategy=SEQUENCE, generator="CUST_SEQ")
@Column(name="CUST_ID")
public Long getId() { return id; }
Example 2:
@Id
@GeneratedValue(strategy=TABLE, generator="CUST_GEN")
@Column(name="CUST_ID")
Long id;
Der Schlüssel, was zu verstehen ist, dass ein generierter Wert eine Strategie und die Strategie des erzeugten Wertes bestimmt, was geschieht. Im obigen Beispiel bedeutet die SEQUENCE-Generierungsstrategie, dass das ORM die Datenbank nach einem neuen Wert für die Sequenz fragt, wenn ein Objekt zum ersten Mal gespeichert wird. Das zweite Beispiel spezifiziert eine Tabellengenerierungsstrategie, was bedeutet, dass das ORM eine Zeile in einer Tabelle konsultieren wird, um den Wert einer ID zu bestimmen. In Beispiel 2 werden die Details der verwendeten Tabelle nicht angezeigt, da sie einen Generator namens "CUST_GEN" referenziert.
Typische Generatoren, denen Sie begegnen werden.
- Identität - Nach einem Einsatz stellt die automatischen incerement Spalte für den Wert des Elements
- Sequenz - der Wert stammt aus einer db-Sequenz
- Tabelle - der Wert kommt aus einer anderen Tabelle in der Datenbank
- auto - eine der oben genannten Pick auf der Basis der Datenbanktyp
- UUID - erzeugen eine UUID vor, einen Einsatz zu tun
Es possib ist le, um kundenspezifischen Generator zu entwickeln. Die Interaktion mit der Datenbank hängt von der Erzeugungsstrategie ab.
Danke für die Adressierung aus Sicht der db – javaNoober
die am besten geeignet ist IDENTITY oder SEQUENCE –