Pēdējo reizi, kad es izveidoju Oracle datu bāzi sistēmai, hibernācijas izmantošanas stratēģija primārās atslēgas ģenerēšanai bija SEQUENCE, un es tajā laikā jutos ļoti noguris, jo es nezinu, kāpēc, oracle + secība + trigeris nevar iegūt primārās atslēgas vērtību, pievienojot jaunus datus.
Šoreiz es pievērsīšos tam, un ir divas jaunas problēmas,
1。 Kurai hibernācijas stratēģijai primāro atslēgu ģenerēšanai ir labāka veiktspēja;
2。 Primārās atslēgas ģenerēšanas stratēģijām ideālā gadījumā vajadzētu būt starpdatu bāzēm.
Visi runā par veiktspēju, orākuls izmanto secību, tāpēc primārā atslēga joprojām vēlas tikt ģenerēta šādā veidā.
Tad ir primārā atslēga, lai atgrieztu jaunos datus
dzimtā Izvēlieties vienu no identitātes, secības vai hilo atbilstoši pamatā esošās datu bāzes iespējām;
Tas nozīmē, ka tiek ģenerēta primārā atslēga, ko izvēlas hibernācija.
Native un Denity ir abas datu bāzes ID sērijas numuru ģenerēšanas stratēģijas, Native ir Hibernate tiek automātiski atlasīts un ģenerēts, Identity ir pašizvēlēts, Identity ir MySQL, SQL2000 un citas datu bāzes ģenerēšanas metodes, un ir arī secība, kas ir Oracle un citas ģenerēšanas metodes, vispārīgi runājot, Native tiek automātiski izvēlēts Hibernate
Datu bāzēm, kas iekšēji atbalsta identitātes laukus (DB2, MySQL, Sybase un MS SQL), varat izmantot identitāti izslēgtu Atslēgas vārdu ģenerēšana. Datu bāzēm, kas atbalsta secības iekšēji (DB2, Oracle, PostgreSQL, Interbase, McKoi un SAP). DB), varat izmantot secības stila atslēgvārdu ģenerēšanu. Abas pieejas prasa divas reizes jauna objekta ievietošanai SQL vaicājumi.
Es pārbaudīju vairāk tiešsaistes informācijas, es nezinu, kur es to redzēju, šo primāro atslēgu ģenerēšanas stratēģiju, ja tā ir mysql, viņš izvēlēsies veidu, auto_increment ģenerēt primāro atslēgu; Ja tas ir Oracle, viņš izvēlēsies secības metodi; Tas ir tikai tas, ka, izmantojot Oracle datu bāzi, jums ir jāizveido hibernate_sequence, kas ir rezervēts Hibernate, un ziņos par kļūdu, ja to neveidojat (pārbaudīts). |