Bonjour,
Je suis en train de développer un webservice en rest avec des entités généré via sqljdbc venant d'une base SQLServer 2005.
Jusqu'a maintenant je n'avais pas trop de soucis avec mes requêtes jpql (se limitant à des simples WHERE jusqu'alors) mais là, je bloque complètement.
Situation :
J'ai 2 entités qui contiennent ceci :
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 @Entity @Table(name = "TblServ_Chambre") @XmlRootElement public class TblServChambre implements Serializable { private static final long serialVersionUID = 1L; @Id @Basic(optional = false) @NotNull @Column(name = "ServChId") private Integer servChId; @Column(name = "ServChNumService") private Integer servChNumService; @Column(name = "ServChNumChambre") private Integer servChNumChambre; ...Donc en gros, TblService contient tous les services et TblServChambre l'id de la chambre et l'id du service qu'elle propose.
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 @Entity @Table(name = "TblService") @XmlRootElement public class TblService implements Serializable { private static final long serialVersionUID = 1L; @Id @Basic(optional = false) @NotNull @Column(name = "ServId") private Integer servId; @Size(max = 50) @Column(name = "ServNom") private String servNom; @Size(max = 50) @Column(name = "ServType") private String servType; @Size(max = 50) @Column(name = "ServNomUK") private String servNomUK; @Size(max = 255) @Column(name = "ServText") private String servText; @Size(max = 255) @Column(name = "ServTextUK") private String servTextUK; ...
J'aimerais donc qu'a partir de l'id d'une chambre, je puisse retrouver les services qu'elle propose. Pour cela j'ai commencé à rédiger une requete avec un inner join qui va piocher dans les 2 tables mais je n'y comprend pas grand chose.
Le plus logique, selon moi, aurai été ça mais ça marche pas (à vrai dire je pense que la syntaxe est mauvaise)
Donc là je m'aventure dans des requêtes bizarres en suivant les exemples trouvés sur le net, mais je n'avance pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part String queryString = "SELECT s FROM TblService s INNER JOIN TblServChambre t ON s.servId = t.servChNumService WHERE t.servChNumChambre = :id";
J'ai trouvé de la documentation sur ces sites :
http://download.oracle.com/docs/cd/E...ef_inner_joins
( Pas compris où étais "nommée" la table Magazine... )
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT pub FROM Publisher pub LEFT JOIN pub.magazines mag WHERE pub.revenue > 1000000
http://www.developpez.net/forums/d10...ette-jointure/
Le soucis c'est qu'il n'y a pas de clé étrangères dans les tables sur la bdd sqlserver, je pense que ça va faire un carnage si je commence à adapter mes entités avec mes annotation @ManyToOne etc ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part "SELECT DISTINCT a FROM Article a JOIN a.genre g WHERE g.idGenre = :genre"
Vous trouverez ci-joint 2 screen des tables en bases de données si j'ai pas été clair.
Est-ce que vous avez une piste ou une idée ?
Je vous remercie d'avance !
Cordialement, Edertef
Partager