Viimeksi kun tein järjestelmälle Oracle-tietokannan, horroskannan käyttö pääavaimen tuottamiseen oli SEQUENCE, ja tunsin oloni hyvin väsyneeksi silloin, koska en tiedä miksi, Oracle + sequence + trigger ei saa ensisijaista avainarvoa lisättäessä uutta dataa.
Tällä kertaa keskityn tähän, ja edessä on kaksi uutta ongelmaa,
1。 Mikä horrosstrategia primaariavainten generointiin tuottaa paremmin;
2。 Ensisijaisten avainten generointistrategioiden tulisi ihanteellisesti olla tietokantojen välisiä.
Kaikki puhuvat suorituskyvystä, oraakkeli käyttää sekvenssiä, joten pääavain haluaa silti tulla generoiduksi tällä tavalla.
Sitten on ensisijainen avain uuden datan palauttamiseen
Native Valitse yksi identiteetti, sekvenssi tai hilo tietokannan ominaisuuksien mukaan;
Toisin sanoen primaariavain generoidaan, joka valitaan talvihorroksessa.
Natiivi ja Denity ovat molemmat tietokanta-ID:n sarjanumeron generointistrategioita, Native is Hibernate valitaan automaattisesti ja generoidaan, Identity on itsevalittu, Identity on MySQL, SQL2000 ja muita tietokantan generointimenetelmiä, ja lisäksi on sekvenssi, joka on Oracle ja muut generointimenetelmät. Yleisesti ottaen Native valitaan automaattisesti Hibernaten toimesta
Tietokannoissa, jotka tukevat identiteettikenttiä sisäisesti (DB2, MySQL, Sybase ja MS SQL), voit käyttää identiteettiä pois päältä Avainsanojen generointi. Tietokannoille, jotka tukevat sekvenssejä sisäisesti (DB2, Oracle, PostgreSQL, Interbase, McKoi ja SAP). DB), voit käyttää sekvenssityylistä avainsanojen generointia. Molemmat lähestymistavat vaativat kaksi kertaa uuden objektin lisäämiseen SQL-kyselyt.
Tarkistin lisää tietoa netistä, en tiedä missä näin sen, tämä strategia generoida ensisijaisia avaimia, jos se on mysql, hän valitsee auto_increment tavan luoda pääavain; Jos kyseessä on Oraakkeli, hän valitsee sekvenssimenetelmän; Kyse on vain siitä, että Oracle-tietokantaa käyttäessä sinun täytyy luoda hibernate_sequence, joka on Hibernaten varama ja raportoi virheen, jos et rakenna sitä (testattu). |