Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 19696|Antwoord: 2

[Bron] Nhibernate Native primaire sleutelgeneratiebeleid

[Link kopiëren]
Geplaatst op 07-04-2017 10:02:04 | | |

De laatste keer dat ik een Oracle-database voor het systeem maakte, was de strategie om de primaire sleutel te genereren met hibernate SEQUENCE, en ik voelde me toen erg moe, want ik weet niet waarom, oracle+sequence+trigger kan de primaire sleutelwaarde niet krijgen bij het toevoegen van nieuwe data.



Deze keer richt ik me hierop, en er zijn twee nieuwe problemen,

1。 Welke winterslaapstrategie voor het genereren van primaire sleutels heeft betere prestaties;

2。 Strategieën voor primaire sleutelgeneratie zouden idealiter cross-database moeten zijn.



Iedereen praat over performance, Oracle gebruikt sequentie, dus de primaire sleutel wil nog steeds op deze manier gegenereerd worden.

Dan is er de primaire sleutel om de nieuwe data terug te geven


Inheems
Kies er één van identity, sequence of hilo op basis van de mogelijkheden van de onderliggende database;

Dat wil zeggen, de primaire sleutel wordt gegenereerd, die wordt gekozen door winterslaap.


Native en Denity zijn beide strategieën voor het genereren van database-ID's serienummers: Native is Hibernate wordt automatisch geselecteerd en gegenereerd, Identity is zelfgeselecteerd, Identity is MySQL, SQL2000 en andere databasegeneratiemethoden, en er is ook een reeks die Oracle en andere generatiemethoden is, over het algemeen wordt Native automatisch geselecteerd door Hibernate

Voor databases die intern identiteitsvelden ondersteunen (DB2, MySQL, Sybase en MS SQL), kun je identiteit uit gebruiken
Sleutelwoordgeneratie. Voor databases die intern sequenties ondersteunen (DB2, Oracle, PostgreSQL, Interbase, McKoi en SAP).
DB), kun je een sequentie-achtige sleutelwoordgeneratie gebruiken. Beide benaderingen vereisen twee tijden om een nieuw object in te voegen
SQL-query's.



Ik heb meer online informatie bekeken, ik weet niet waar ik het heb gevonden, deze strategie van primaire sleutels genereren, als het mysql is, kiest hij auto_increment manier om de primaire sleutel te genereren; Als het Oracle is, kiest hij de sequentiemethode; Het is alleen zo dat je bij het gebruik van de Oracle-database een hibernate_sequence moet aanmaken, die gereserveerd is door Hibernate en een foutmelding geeft als je het niet bouwt (getest).




Vorig:Samenvatting van de uitvoeringsvolgorde van statische, niet-statische en constructieve methoden in een klasse
Volgend:Omgaan met het onderscheid tussen gelijktijdige Timestamp en ConcurrencyCheck
 Huisbaas| Geplaatst op 07-04-2017 10:02:07 |
Native is aangeboren, inheems, wat betekent dat het aangeboren is.
Dat betekent dat het automatisch wordt gegenereerd en geen handmatige hulp of controle vereist.

Toegewezen betekent aangeduid, toegewezen.
Als je hem niets geeft, kan hij het niet bereiken.
Het kost arbeid, geef het zelf iets
Dus het is toegewezen
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com