2010-05-10 15 views
6

Nos encontramos con un problema donde tenemos subclases de eventos que usan GenerationType.TABLE para generar la clave principal, y cuando reiniciamos los servidores, obtenemos errores duplicados de la clave principal.Hibernar la clave principal duplicada al reiniciar usando GenerationType.TABLE

Estamos usando SQL Server e Hibernate versión 3.5.1-Final.

Esto es lo que nuestros anotaciones de Hibernate se parecen:

@Entity 
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) 
public abstract class Event { 

    @Id 
    @GeneratedValue(strategy = GenerationType.TABLE) 
    private long eventID; 

no especificamos el allocationSize así que estamos utilizando el valor predeterminado. La tabla de secuencias de hibernación aumenta, pero parece que al reiniciarse está reutilizando las ID ya utilizadas.

Respuesta

0

Pruebe GenerationType.AUTO o SECUENCIA. AUTO puede funcionar a través de la magia de hibernación, pero SEQUENCE debe crear, curiosamente, una secuencia en la base de datos que usará para obtener identificaciones únicas. ¿Qué servidor SQL estás usando?

+0

No puede usar GenerationType.AUTO con InheritanceType.TABLE_PER_SUBCLASS. Google "No se puede usar la generación de claves de columna de identidad con la asignación para" – ndtreviv

Cuestiones relacionadas