Την τελευταία φορά που έφτιαξα μια βάση δεδομένων Oracle για το σύστημα, η στρατηγική χρήσης αδρανοποίησης για τη δημιουργία του πρωτεύοντος κλειδιού ήταν το SEQUENCE και ένιωσα πολύ κουρασμένος εκείνη τη στιγμή, γιατί δεν ξέρω γιατί, το oracle+sequence+trigger δεν μπορεί να πάρει την τιμή του πρωτεύοντος κλειδιού κατά την προσθήκη νέων δεδομένων.
Αυτή τη φορά θα επικεντρωθώ σε αυτό, και υπάρχουν δύο νέα προβλήματα,
1。 Ποια στρατηγική αδρανοποίησης για τη δημιουργία πρωτευόντων κλειδιών έχει καλύτερη απόδοση.
2。 Οι στρατηγικές δημιουργίας πρωτογενών κλειδιών θα πρέπει ιδανικά να είναι διασταυρούμενες βάσεις δεδομένων.
Όλοι μιλούν για απόδοση, η oracle χρησιμοποιεί ακολουθία, επομένως το πρωτεύον κλειδί εξακολουθεί να θέλει να δημιουργηθεί με αυτόν τον τρόπο.
Στη συνέχεια, υπάρχει το πρωτεύον κλειδί για την επιστροφή των νέων δεδομένων
εγγενής Επιλέξτε ένα από τα identity, sequence ή hilo σύμφωνα με τις δυνατότητες της υποκείμενης βάσης δεδομένων.
Δηλαδή, δημιουργείται το πρωτεύον κλειδί, το οποίο επιλέγεται με αδρανοποίηση.
Το Native και το Denity είναι και οι δύο στρατηγικές δημιουργίας σειριακού αριθμού αναγνωριστικού βάσης δεδομένων, το Native is Hibernate επιλέγεται και δημιουργείται αυτόματα, το Identity είναι αυτοεπιλεγμένο, το Identity είναι MySQL, SQL2000 και άλλες μέθοδοι δημιουργίας βάσεων δεδομένων, και υπάρχει επίσης μια ακολουθία που είναι η Oracle και άλλες μέθοδοι παραγωγής, σε γενικές γραμμές, το Native επιλέγεται αυτόματα από την αδρανοποίηση
Για βάσεις δεδομένων που υποστηρίζουν πεδία ταυτότητας εσωτερικά (DB2, MySQL, Sybase και MS SQL), μπορείτε να χρησιμοποιήσετε την ταυτότητα απενεργοποιημένη Δημιουργία λέξεων-κλειδιών. Για βάσεις δεδομένων που υποστηρίζουν ακολουθίες εσωτερικά (DB2, Oracle, PostgreSQL, Interbase, McKoi και SAP). DB), μπορείτε να χρησιμοποιήσετε τη δημιουργία λέξεων-κλειδιών σε στυλ ακολουθίας. Και οι δύο προσεγγίσεις απαιτούν δύο φορές για την εισαγωγή ενός νέου αντικειμένου Ερωτήματα SQL.
Έλεγξα περισσότερες διαδικτυακές πληροφορίες, δεν ξέρω πού τις είδα, αυτή τη στρατηγική δημιουργίας πρωτευόντων κλειδιών, αν είναι mysql, θα επιλέξει auto_increment τρόπο δημιουργίας του πρωτεύοντος κλειδιού. Αν είναι Oracle, θα επιλέξει τη μέθοδο ακολουθίας. Απλώς, όταν χρησιμοποιείτε τη βάση δεδομένων Oracle, πρέπει να δημιουργήσετε ένα hibernate_sequence, το οποίο είναι δεσμευμένο από την Αδρανοποίηση και θα αναφέρει ένα σφάλμα εάν δεν το δημιουργήσετε (δοκιμασμένο). |