Paskutinį kartą sukūriau "Oracle" duomenų bazę sistemai, užmigdymo režimo strategija pirminiam raktui generuoti buvo SEQUENCE, ir tuo metu jaučiausi labai pavargęs, nes nežinau kodėl, oracle+sequence+trigger negali gauti pirminio rakto reikšmės pridedant naujų duomenų.
Šį kartą aš sutelksiu dėmesį į tai, ir yra dvi naujos problemos,
1。 Kuri užmigdymo strategija generuoti pirminius raktus turi geresnį našumą;
2。 Idealiu atveju pirminio rakto generavimo strategijos turėtų būti kelių duomenų bazių.
Visi kalba apie našumą, orakulas naudoja seką, todėl pirminis raktas vis tiek nori būti generuojamas tokiu būdu.
Tada yra pirminis raktas naujiems duomenims grąžinti
gimtoji Pasirinkite vieną iš tapatybės, sekos arba hilo pagal pagrindinės duomenų bazės galimybes;
Tai yra, sugeneruojamas pirminis raktas, kurį pasirenka užmigdymo režimas.
"Native" ir "Denity" yra duomenų bazės ID serijos numerių generavimo strategijos, "Native is Hibernate" automatiškai pasirenkamas ir sugeneruojamas, tapatybė pasirenkama savarankiškai, tapatybė yra "MySQL", SQL2000 ir kiti duomenų bazės generavimo metodai, taip pat yra seka, kuri yra "Oracle" ir kiti generavimo metodai, paprastai tariant, "Native yra automatiškai pasirenkamas užmigdymo režimu"
Duomenų bazėse, kurios palaiko tapatybės laukus viduje (DB2, MySQL, Sybase ir MS SQL), galite naudoti tapatybę išjungtą Raktinių žodžių generavimas. Duomenų bazėms, kurios palaiko sekas viduje (DB2, Oracle, PostgreSQL, Interbase, McKoi ir SAP). DB), galite naudoti sekos stiliaus raktinių žodžių generavimą. Abiem būdais reikia du kartus įterpti naują objektą SQL užklausos.
Aš patikrinau daugiau informacijos internete, aš nežinau, kur aš jį mačiau, ši strategija generuoti pirminius raktus, jei tai yra mysql, jis pasirinks auto_increment būdą generuoti pirminį raktą; Jei tai "Oracle", jis pasirinks sekos metodą; Tiesiog naudodamiesi "Oracle" duomenų baze turite sukurti hibernate_sequence, kuri yra rezervuota užmigdymo režimu, ir praneš apie klaidą, jei jos nesukursite (išbandyta). |