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
sous-class:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } }
Partager