Bonjour,
Je ne parviens pas à paramétrer mes classes pour utiliser correctement mes requêtes en HQL.
J'ai 3 tables: reglement, moyen_paiement (id_moyen), prelevement
id_moyen est rappatrié dans les 2 autres tables pour une relation de type 1-1. (sauf pour prelevement qui sera 0-1)
L'idée, c'est accéder en HQL aux prélèvements d'un règlement.
En SQL, c'est facile:
select p.* from reglement r join prelevement p on r.id_moyen=p.id_moyen
En HQL, c'est compliqué (peut être parce que j'ai mal configuré mes classes):
Ma requête:
select p from reglement r inner join prelevement p where r.moyenpaie.idmoyenpaie=p.moyenpaie.idmoyenpaie
J'obtiens l'erreur: Path expected for join!
Mes classes (avec les parties concernées seulement):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public class reglement implements java.io.Serializable {
[...]
@ManyToOne
@JoinColumn(name = "IDMOYENPAIE")
@ForeignKey(name = "FK_LIGNEREGLEMENT_MOYENPAIEMENT")
@Fetch(FetchMode.JOIN)
private Moyenpaiement moyenpaie;
}
public class Moyenpaiement implements java.io.Serializable {
@Id
@Column(name = "IDMOYENPAIE",nullable=false)
private Long idmoyenpaie;
}
public class prelevement implements java.io.Serializable {
@ManyToOne
@JoinColumn(name="IDMOYENPAIE")
@ForeignKey(name="FK_DEMANDEPREL_MOYENPAIEMENT")
@Fetch(FetchMode.JOIN)
private Moyenpaiement moyenpaie;
} |
Partager