Zakładam, że odwołujesz się do wartości JPA @GeneratedValue.
Adnotacja @GeneratedValue
informuje ORM, jak określić wartość tego pola.
Na przykład:
@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;
Kluczową sprawą jest, aby zrozumieć, że generowana wartość ma strategię i strategię wygenerowanego wartość określa, co się dzieje. W powyższym przykładzie strategia generowania SEQUENCE oznacza, że ORM zapyta bazę danych o nową wartość dla sekwencji podczas zapisywania obiektu po raz pierwszy. Drugi przykład określa strategię generowania tabeli, co oznacza, że ORM będzie sprawdzać wiersz w tabeli, aby określić wartość id. W przykładowym przykładzie 2 dane dotyczące używanej tabeli nie są wyświetlane, ponieważ odnoszą się do generatora o nazwie "CUST_GEN"
Typowe generatory, na które napotkasz.
- Identity - Po wkładka zapytać kolumnę auto incerement do wartości przedmiotu
- Sequence - wartość pochodzi z sekwencji db
- tabeli - wartość pochodzi z innej tabeli w bazie danych
- auto - wybierz jedną z powyżej na podstawie typu bazy
- UUID - generowanie UUID przed wykonaniem wkładki
jest możliwie pobiera le do opracowania niestandardowego generatora. Interakcja z bazą danych będzie zależeć od strategii generowania.
dziękuję za adresowanie tego z punktu widzenia db – javaNoober
, który najlepiej pasuje do jednej identyfikacji lub sekwencji –