Ostatnim razem, gdy tworzyłem bazę Oracle dla systemu, strategia użycia hibernate do generowania klucza głównego to SEQUENCE, i wtedy czułem się bardzo zmęczony, bo nie wiem dlaczego oracle+sequence+trigger nie może uzyskać wartości klucza głównego przy dodawaniu nowych danych.
Tym razem skupię się na tym i pojawiły się dwa nowe problemy,
1。 Która strategia hibernacji do generowania kluczy głównych ma lepszą wydajność;
2。 Strategie generowania kluczy głównych powinny idealnie opierać się na bazach danych.
Wszyscy mówią o wydajności, Oracle używa sekwencji, więc klucz główny nadal chce być generowany w ten sposób.
Następnie jest klucz główny do zwracania nowych danych
Native Wybierz jedną z tożsamości, sekwencji lub hilo zgodnie z możliwościami bazy danych;
Oznacza to, że generowany jest klucz główny, który jest wybierany przez hibernację.
Native i Denity to strategie generowania numerów seryjnych ID bazy danych, Native is Hibernate jest wybierany automatycznie i generowany, Identity jest wybierany samodzielnie, Identity to MySQL, SQL2000 i inne metody generowania baz danych, a także istnieje sekwencja Oracle i innych metod generowania; ogólnie rzecz biorąc, Native jest automatycznie wybierana przez Hibernate
W bazach danych, które wewnętrznie obsługują pola tożsamości (DB2, MySQL, Sybase i MS SQL), możesz użyć wyłączonej tożsamości Generowanie słów kluczowych. Dla baz danych, które wewnętrznie obsługują sekwencje (DB2, Oracle, PostgreSQL, Interbase, McKoi i SAP). DB), możesz używać generowania słów kluczowych w stylu sekwencji. Oba podejścia wymagają dwóch razy na wstawienie nowego obiektu Zapytania SQL.
Sprawdziłem więcej informacji w internecie, nie wiem, gdzie to widziałem, ta strategia generowania kluczy głównych, jeśli to mysql, wybierze auto_increment sposób generowania klucza głównego; Jeśli to Wyrocznia, wybierze metodę sekwencji; Po prostu korzystając z bazy Oracle musisz utworzyć hibernate_sequence, który jest zarezerwowany przez Hibernate i zgłosi błąd, jeśli go nie zbudujesz (testowany). |