2010-07-23 12 views
5

Per quanto riguarda Comprensione, quando la classe 'Native' viene utilizzata per la generazione di ID automatico in Oracle, viene creata una singola sequenza di sospensione, da cui tutti gli ID vengono forniti a qualsiasi tabella necessaria.Hibernate with MySQL: Id di generazione automatica: Equivalente di sequenza (Oracle) in MySQL

Ma non vedo questo accada con MySQL. Invece, l'id per ogni tabella inizia con 1.

Per favore correggimi se sbaglio.

Inoltre, se voglio che tu capiti su MySQL, cosa si dovrebbe fare.

Grazie Tutti.

Raj.

risposta

6

Per quanto ne so, quando la classe 'Native' viene utilizzata per la generazione dell'ID automatico in Oracle, viene creata una singola sequenza di sospensione, da cui tutti gli ID vengono forniti a qualsiasi tabella necessaria.

Ciò si verifica se non si specifica alcun nome di sequenza, a differenza di questo:

<generator class="sequence"> 
    <param name="sequence">employer_id_seq</param> 
</generator> 

E in realtà la maggior parte del tempo, la gente non vuole una sequenza unica, che preferiscono una sequenza per ogni tabella.

Ma non vedo che questo accada con MySQL. Invece, per id per ogni tabella iniziano con 1.

Con MySQL, il generatore native imposterà un identity strategia cioè utilizzerà colonne Identity, che sono per tabella.

Inoltre, se voglio che lo stesso accada su MySQL, cosa si deve fare.

Allo stesso modo, suppongo che intendi utilizzare ID sequenziali per tutte le tue entità. Dare il generatore table una prova:

<generator class="table"> 
</generator> 

ma questo non eseguire così come sequenza o di identità colonne. Inoltre, di solito le persone preferiscono non condividere gli ID tra entità come ho già scritto. Ci penserei ancora.

+0

grazie, Pascal. che ha aiutato .. raj! – Raj