Zadnjič, ko sem ustvarjal Oracle bazo podatkov za sistem, je bila strategija uporabe hibernate za generiranje primarnega ključa SEQUENCE, in takrat sem bil zelo utrujen, ker ne vem, zakaj oracle+sequence+trigger ne more dobiti primarne vrednosti ključa ob dodajanju novih podatkov.
Tokrat se bom osredotočil na to, in pojavljata se dve novi težavi,
1。 Katera hibernacijska strategija za generiranje primarnih ključev ima boljšo zmogljivost;
2。 Strategije generiranja primarnih ključev bi morale biti idealno med bazami podatkov.
Vsi govorijo o zmogljivosti, Oracle uporablja zaporedje, zato primarni ključ še vedno želi biti generiran na ta način.
Nato je tu še primarni ključ za vrnitev novih podatkov
domačin Izberite eno identiteto, zaporedje ali hilo glede na zmogljivosti osnovne baze podatkov;
To pomeni, da se generira primarni ključ, ki ga izbere hibernacija.
Native in Denity sta obe strategiji za generiranje serijskih številk ID podatkovnih številk, Native is Hibernate je samodejno izbran in generiran, Identity je samo-izbran, Identity je MySQL, SQL2000 in druge metode generiranja podatkov, prav tako pa obstaja zaporedje, ki je Oracle in druge metode generiranja; na splošno Hibernate samodejno izbere Native
Za baze podatkov, ki interno podpirajo identitetna polja (DB2, MySQL, Sybase in MS SQL), lahko uporabite identiteto izklopljeno Generiranje ključnih besed. Za baze podatkov, ki podpirajo zaporedja interno (DB2, Oracle, PostgreSQL, Interbase, McKoi in SAP). DB), lahko uporabite generiranje ključnih besed v zaporedju. Oba pristopa zahtevata dva časa za vstavljanje novega objekta SQL poizvedbe.
Preveril sem več informacij na spletu, ne vem, kje sem jih našel, ta strategija generiranja primarnih ključev, če je to mysql, bo izbral način auto_increment generiranje primarnega ključa; Če je Oracle, bo izbral metodo zaporedja; Pri uporabi Oracle baze podatkov moraš ustvariti hibernate_sequence, ki ga rezervira Hibernate, in bo poročal o napaki, če ga ne zgradiš (testiran). |