Viimati, kui ma süsteemile Oracle andmebaasi tegin, kasutas talveuneseadet esmase võtme genereerimiseks SEQUENCE, ja ma tundsin end tol hetkel väga väsinuna, sest ma ei tea miks, Oracle + järjestus + trigger ei saa uute andmete lisamisel esmase võtme väärtust kätte.
Seekord keskendun sellele ja on kaks uut probleemi,
1。 Milline talveunestrateegia primaarvõtmete genereerimiseks on parema jõudlusega;
2。 Primaarvõtmete genereerimise strateegiad peaksid ideaalis olema andmebaasideülesed.
Kõik räägivad jõudlusest, oraakel kasutab järjestust, nii et peamine võti tahab ikkagi sellisel viisil genereerida.
Siis on peamine võti uute andmete tagastamiseks
Põlisrahvas Vali identiteet, järjestus või hilo vastavalt aluseks oleva andmebaasi võimekusele;
See tähendab, et genereeritakse primaarvõti, mis valitakse talveunes.
Native ja Denity on mõlemad andmebaasi ID seerianumbri genereerimise strateegiad, Native is Hibernate valitakse ja genereeritakse automaatselt, Identity on isevalida, Identity on MySQL, SQL2000 ja teised andmebaasi genereerimise meetodid ning on ka Oracle ja teised genereerimismeetodid, üldiselt valib Hibernate automaatselt Native'i
Andmebaaside puhul, mis toetavad identiteedivälju sisemiselt (DB2, MySQL, Sybase ja MS SQL), saab kasutada identiteedi väljalülitamist Märksõnade genereerimine. Andmebaaside jaoks, mis toetavad järjestusi sisemiselt (DB2, Oracle, PostgreSQL, Interbase, McKoi ja SAP). DB), võid kasutada järjestusstiilis märksõnade genereerimist. Mõlemad lähenemised nõuavad uue objekti lisamiseks kahte korda SQL-päringud.
Kontrollisin rohkem internetiinfot, ma ei tea, kus ma seda nägin, see strateegia genereerida primaarvõtmeid, kui see on mysql, valib ta auto_increment viisi primaarvõtme genereerimiseks; Kui see on Oracle, valib ta järjestuse meetodi; Lihtsalt Oracle andmebaasi kasutades pead looma hibernate_sequence, mis on Hibernate'i poolt reserveeritud ja mis teatab veast, kui sa seda ei ehita (testitud). |