2010-07-23 11 views
5

Por lo que yo entiendo, cuando se usa la clase 'Native' para la generación automática de ID en Oracle, se crea una única secuencia de hibernación, desde donde todo los ID se entregan a la tabla que sea necesaria.Hibernate con MySQL: Auto-Generate Id: Equivalente de secuencia (Oracle) en MySQL

Pero esto no sucede con MySQL. En cambio, los identificadores para cada tabla comienzan con 1.

Corrígeme si estoy equivocado.

Además, si quiero que suceda lo mismo en MySQL, ¿qué se debe hacer?

Gracias a todos.

Raj.

Respuesta

6

Por lo que tengo entendido, cuando se utiliza la clase 'nativo' para la generación de Identificación automática de Oracle, se crea una única secuencia de hibernación, desde donde todos los ID se suministran a cualquier mesa sea necesario.

Esto ocurre si no se especifica ningún nombre de la secuencia, a diferencia de lo siguiente:

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

Y de hecho la mayor parte del tiempo, la gente no quiere una secuencia única, que prefieren una secuencia por mesa.

Pero no veo que esto suceda con MySQL. En su lugar, la identificación de cada tabla para empezar con 1.

Con MySQL, el generador native pondrá por defecto a una estrategia identity es decir, va a utilizar las columnas de identidad, que son por mesa.

Además, si quiero que ocurra lo mismo en MySQL, ¿qué se debe hacer?

De la misma manera, supongo que te refieres al uso de identificadores secuenciales para todas tus entidades. Dar el generador table una oportunidad:

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

Pero esto no va a realizar, así como la secuencia de identidad o columnas. Además, las personas suelen preferir no compartir identificaciones entre entidades, como ya escribí. Pensaría en esto de nuevo.

+0

gracias, Pascal. eso ayudó .. raj! – Raj

Cuestiones relacionadas