I have 2 entity candidate and candidature , each of them have 2 children candidateX , candidateY and candidatureX , candidatureY . The relation between candidate and candidature is one to many

@Entity
@Table(name = "CANDIDATURE")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE )
@DiscriminatorColumn( name="CANDIDATURE_TYPE",discriminatorType=DiscriminatorType.STRING)
public class Candidature {

private Candidate candidate;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CANDIDATE_ID", nullable = false)
public Candidate getCandidate() {
return candidate;
}}




@Entity
@Table(name = "CANDIDATE")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE )
@DiscriminatorColumn( name="CANDIDATE_TYPE",discriminatorType=DiscriminatorType.STRING)
public class Candidate {


private Set<Candidature> candidatures;

@OneToMany(fetch = FetchType.LAZY, mappedBy = "candidate")
public Set<Candidature> getCandidatures() {
return candidatures;
}


}
with this implemtation i can't join child candidateX to candidatureX , how can i solve it ? can I make the join in children and How? this is children

@Entity
@DiscriminatorValue("CANDIDATURE_X")
public class CandidatureX extends Candidature{
}
@Entity
@DiscriminatorValue("CANDIDATURE_Y")
public class CandidatureY extends Candidature{
}

@Entity
@DiscriminatorValue("CANDIDATE_X")
public class CandidateX extends Candidate{
}

@Entity
@DiscriminatorValue("CANDIDATE_Y")
public class CandidateY extends Candidate{
}
my probleme is in the relation between candidateX - candidatureX and candidateY - candidatureY