Pregunta

Estoy usando Hibernate para persistir una entidad a mi base de datos. Por el momento se trata de una base de datos Derby, pero Voy a mover la vuelta a una base de datos Oracle pronto.

en mi classname.hbm.xml He definido el id como tal:

<id name="id" type="long">
      <column name="ID"/>
      <generator class="increment"/>
</id>

¿Cómo se configura el valor de partida para la identificación? Me gustaría que se inicie en algo así como 10.000 en vez de 1.

¿Fue útil?

Solución

No creo que pueda, parece que IncrementGenerator trabaja sobre la base de la clave primaria más alta así que a menos que fijen sus claves primarias (que no lo recomendaría) que está pegado con esa funcionalidad.

Lo recomendaría una estrategia diferente, que no es seguro en un grupo de máquinas, ya sea ... Mira la documentación de Hibernate y tal vez los generadores de identificador mejorados:

http : //docs.jboss.org/hibernate/stable/core/reference/en/html/mapping.html#mapping-declaration-id-enhanced

Otros consejos

"incremento" no es realmente una buena idea para la generación de ID.

Si usted se está moviendo a Oracle, a continuación, vamos a usar una secuencia para generar identificadores, y la secuencia es controlado por oráculo, para que pueda hacer que se inicie con cualquier valor que desee.

secuencias como de 10,6, aunque Hibernate 3.6 necesita para conseguirlo trabajo ..

Tipo de generador incremento mira hacia arriba el valor numérico máximo de clave primaria en la tabla y lo incrementa en uno.

Tipo de generador nativa utiliza una secuencia cuando la base de datos subyacente utilizada es Oracle. Puede aumentar fácilmente el valor de la secuencia a un valor inicial arbitrario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top