Estou testando um modelo que peguei da web mas está dando erro.
Veja a classe mãe
@Entity
@Inheritance(strategy =InheritanceType.TABLE_PER_CLASS)
@DiscriminatorValue("pessoa")
public class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
protected int id;
protected String nome;
protected String sobrenome;
public void setId(int id) {
this.id = id;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
return id;
}
// omitido o restante dos getters and setter
}
[color=red]Veja a classe filha, que nao está sendo criada[/color]
@Entity
@Inheritance(strategy =InheritanceType.TABLE_PER_CLASS)
public class Assalariado extends Pessoa implements Serializable{
private static final long serialVersionUID = 1L;
protected double salario;
// omitido o restante dos getters and setter
}
Agora veja o erro que está dando
18:28:17,859 WARN [ServiceController] Problem starting service persistence.units:jar=ejb_in_action_cap02_JPA.jar,unitName=pu_ejb_in_action_cap02_JPA
[color=red]javax.persistence.PersistenceException: org.hibernate.MappingException: Cannot use identity column key generation with <union-subclass> mapping for: br.com.jm.user.Pessoa
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:720)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:246)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
ObjectName: persistence.units:jar=ejb_in_action_cap02_JPA.jar,unitName=pu_ejb_in_action_cap02_JPA
State: FAILED
Reason: javax.persistence.PersistenceException: org.hibernate.MappingException: Cannot use identity column key generation with <union-subclass> mapping for: br.com.jm.user.Pessoa
I Depend On:
[/color]
[code]
Alguém já implementou este tipo de herança ?
Marco Aurélio