Estoy intentando crear una clase base para un conjunto de entidades para reducir el esfuerzo de codificación y la duplicación. Mi opinión es que la clase base tiene los campos comunes de metadatos, y las clases secundarias tratan sus atributos únicos.@Entity no reconoce @Id en @MappedSuperclass
Mi clase base:
@MappedSuperclass
public abstract class FinanceEntityBean {
protected Long id;
@Version
private long version;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public Long getId() {
return id;
}
public void setId(final Long id) {
this.id = id;
}
}
La primera entidad:
@Entity
@Table(name = "tag")
public class Tag extends FinanceEntityBean {
}
He pruebas escritas que utilizan este código para hacer funciones CRUD en la entidad de etiqueta, y todos ellos están trabajando muy bien.
Mi pregunta es - ¿por qué Eclipse (Indigo) insistir en que Tag
tiene un error:
The entity has no primary key attribute defined
que he cambiado a una advertencia por ahora así que mi código se compilará, pero estoy Curioso por qué Eclipse no es feliz, y si he entendido mal algo.
¿Este código JPA 2.0 es válido? Hibernate 4.1.5 es mi proveedor de JPA.
Esta advertencia/error es incorrecto, solo puede deshabilitarla en las preferencias – Kemoda