Pregunta

Estoy usando Hibernate JPA.

Supongamos que tengo estas clases:

AbstractPerson
|--> ConcreteEmployee
|--> ConcreteCustomer

¿Hay alguna manera de hacer las clases concretas tienen identificadores independientes?

Estoy usando InheritanceType.TABLE_PER_CLASS.

¿Fue útil?

Solución

A partir de la Guía de referencia Anotaciones de Hibernate:

  

2.2.4.1. Tabla por clase

     

Esta estrategia tiene muchos inconvenientes (esp.   con consultas polimórficas y   asociaciones) explican en la APP   spec, la referencia Hibernate   documentación, Hibernate en Acción,   y muchos otros lugares. el trabajo de hibernación   alrededor de la mayoría de ellos la aplicación de esta   estrategia de uso de consultas SQL UNION. Eso   se utiliza comúnmente para el nivel superior de   una jerarquía de herencia:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Flight implements Serializable { ... } 
     

Esta estrategia apoya uno-a-muchos   asociaciones siempre que sean   bidireccional. Esta estrategia   no soporta el generador IDENTITY   estrategia: el identificador tiene que ser compartido   la mayoría de las mesas. Por consiguiente,   cuando se utiliza esta estrategia, usted debe   No utilice ni AUTO IDENTITY .

Así que me temo que lo que quiere no es compatible (y mejor utilizar GenerationType.TABLE).

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