Amikor legutóbb Oracle adatbázist készítettem a rendszerhez, a hibernátus használata a fő kulcs generálására a SEQUENCE volt, és akkor nagyon fáradt voltam, mert nem értem, miért, az oracle+sequence+trigger nem kapja meg az elsődleges kulcsértéket új adat hozzáadásakor.
Ezúttal erre fogok koncentrálni, és két új probléma van,
1。 Melyik hibernációs stratégia a primer kulcsok generálására jobb teljesítményt nyújt;
2。 Az elsődleges kulcsgeneráló stratégiáknak ideális esetben az adatbázisok közötti megoldásoknak kell lenniük.
Mindenki a teljesítményről beszél, az orákulum szekvenciát használ, így a fő kulcs továbbra is így generálható lenne.
Aztán ott van a fő kulcs, amely visszaadja az új adatokat
Őslakos Válassz identitást, szekvenciát vagy hilót az alapulszolgáló adatbázis képességei szerint;
Vagyis a fő kulcs generálódik, amelyet a téli hibernáció választ ki.
A natív és a Denity egyaránt adatbázisazonosító sorozatszám-generálási stratégiák, a Native is Hibernate automatikusan kiválasztható és generálható, az Identity önkiválasztás, az Identity a MySQL, SQL2000 és más adatbázis-generálási módszerek, valamint van egy sorozat, ami az Oracle és más generálási módszerek is van, általában a Native-t automatikusan kiválasztja a Hibernate
Azoknál az adatbázisoknál, amelyek belső identitásmezőket támogatnak (DB2, MySQL, Sybase és MS SQL), használhatod az identitást kikapcsolva Kulcsszavak generálása. Olyan adatbázisoknál, amelyek belső szekvenciákat támogatnak (DB2, Oracle, PostgreSQL, Interbase, McKoi és SAP). DB), használhatsz szekvencia-stílusú kulcsszógenerálást. Mindkét megközelítés kétszer szükséges egy új objektum behelyezéséhez SQL lekérdezések.
Utánanéztem több online információn, nem tudom, hol láttam, ez a kulcs generálásának stratégiája, ha MySQL van, akkor ő auto_increment módszert választ a fő kulcs generálására; Ha az Orákulum, akkor a sorozat módszert választja; Csak az az a helyzet, hogy Oracle adatbázis használatakor létre kell hoznod egy hibernate_sequence-t, amelyet a Hibernate tart lefoglalva, és hibát jelent, ha nem építed (teszteled). |