Ho un problema con il mio modello di dominio jpa. Sto solo cercando di giocare con una semplice ereditarietà per la quale io uso una semplice classe base Person e una sottoclasse Customer. Secondo la documentazione ufficiale (sia JPA che EclipseLink) ho solo bisogno dell'attributo ID/colonna nella classe base. Ma quando eseguo i miei test, ricevo sempre un errore che mi dice che il cliente non ha IDI?L'ereditarietà JPA richiede l'ID nella sottoclasse
Per prima cosa ho pensato che il problema si trova nella visibilità dell'attributo id, perché era privato in primo luogo. Ma anche dopo averlo modificato in protetto (quindi la sottoclasse ha accesso diretto) non funziona.
Persona:
@Entity @Table(name="Persons")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "TYPE")
public class Person {
@Id
@GeneratedValue
protected int id;
@Column(nullable = false)
protected String firstName;
@Column(nullable = false)
protected String lastName;
clienti:
@Entity @Table(name = "Customers")
@DiscriminatorValue("C")
public class Customer extends Person {
//no id needed here
io sono a corto di idee e risorse da guardare. Dovrebbe essere un problema piuttosto semplice, ma io non lo vedo.
Ho un problema simile. Credo che sia legato a Eclipse.I miei strumenti di sviluppo JBoss lamentano l'assenza di ID su un'entità derivata, ma Maven la compila senza lamentarsi. – Mats