Unable to define/override @Id(s) on a subclass
Bonjour,
Suite à un héritage avec une surclasse et dont les deux sont des entités.
J’obtiens une erreur récurrente.
Unable to define/override @Id(s) on a subclass: model.Runner
J'ai beau appliquer les consignes des exemples, rien à faire.
Pouvez-vous m'aider ?
Merci
sur-classe
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
| package model;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Transient;
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="pId", discriminatorType = DiscriminatorType.INTEGER)
abstract class Person {
@Id
@Column(name="personId")
private Integer personId;
@Column(name = "matricule")
private String badge;
@Column(name = "name")
private String name;
@Column(name = "trigone")
private String trigone;
@Column(name = "sexe")
private String sex;
@Column(name = "unite")
private String unit;
@Transient
private Collection<Permission> permissions;
public Person() {
}
public Integer getPersonId() {
return personId;
}
public void setPersonId(Integer personId) {
this.personId = personId;
}
public String getBadge() {
return badge;
}
public void setBadge(String badge) {
this.badge = badge;
}
public String getName() {
try {
return name;
} catch (NullPointerException e) {
return null;
}
}
public void setName(String name) {
this.name = name;
}
public String getTrigone() {
return trigone;
}
public void setTrigone(String trigone) {
this.trigone = trigone;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public Collection<Permission> getPermissions() {
return permissions;
}
public void setPermissions(Collection<Permission> permissions) {
this.permissions = permissions;
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(name + "(" + badge + ")");
return sb.toString();
}
} |
sous-class:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
import enums.EnumControlState;
import exception.ConvertionExeception;
@Entity
@Table(name="Coureur")
public class Runner extends Person {
@Id @GeneratedValue
private Integer runnerId;
private String result;
private String noteSupervisor;
@Transient
private EnumControlState state;
public Runner(){}
public Integer getIndex() {
return runnerId;
}
public void setIndex(Integer index) {
this.runnerId = index;
}
public Integer getResultInSec() throws ConvertionExeception {
return ConvertingHelperClass.convertToSecond(result);
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String getNoteSupervisor() {
return noteSupervisor;
}
public void setNoteSupervisor(String noteSupervisor) {
this.noteSupervisor = noteSupervisor;
}
public EnumControlState getState() {
return state;
}
public void setState(EnumControlState state) {
this.state = state;
}
public String toString(){
StringBuffer sb = new StringBuffer();
sb.append(this.getName() + "(" + this.getBadge() + ")");
return sb.toString();
}
} |