Последния път, когато направих Oracle база данни за системата, стратегията да използвам hibernate за генериране на първичния ключ беше SEQUENCE, и тогава се чувствах много уморен, защото не знам защо, oracle+sequence+trigger не може да получи основната стойност на ключа при добавяне на нови данни.
Този път ще се съсредоточа върху това и има два нови проблема,
1。 Коя хибернираща стратегия за генериране на първични ключове има по-добра производителност;
2。 Основните стратегии за генериране на ключове трябва идеално да са между базите данни.
Всички говорят за производителност, оракулът използва последователност, така че първичният ключ все пак иска да се генерира по този начин.
След това има първичен ключ за връщане на новите данни
Местен Изберете една с идентичност, последователност или хило според възможностите на базата данни;
Тоест, първичният ключ се генерира, който се избира чрез хибернация.
Native и Denity са стратегии за генериране на сериен номер на ID на базата данни, Native is Hibernate се избира автоматично и генерира, Identity е самоизбран, Identity е MySQL, SQL2000 и други методи за генериране на бази данни, а има и последователност, която е Oracle и други методи за генериране, като обикновено Native се избира автоматично от Hibernate
За бази данни, които поддържат идентични полета вътрешно (DB2, MySQL, Sybase и MS SQL), можеш да използваш идентичност off Генериране на ключови думи. За бази данни, които поддържат последователности вътрешно (DB2, Oracle, PostgreSQL, Interbase, McKoi и SAP). DB), можете да използвате генериране на ключови думи в стил последователност. И двата подхода изискват два пъти за въвеждане на нов обект SQL заявки.
Проверих повече информация онлайн, не знам откъде я видях, тази стратегия за генериране на първични ключове, ако е mysql, той ще избере auto_increment начин да генерира първичния ключ; Ако е Oracle, той ще избере метода на последователността; Просто при използване на Oracle база данни трябва да създадеш hibernate_sequence, който е запазен от Hibernate и ще докладва грешка, ако не го изградиш (тестван). |