Bonjour a tous,
Voila j'utilise hibernate depuis 2 semaines donc je débute,
Mon problème est que j'ai une basse de donnée qui me sert a gérer des supplier, customer, facturation etc ...
Je suis entrain de codé une méthode pour pouvoir rechercher un supplier par son ID, mais voila j'ai une jointure avec une table Commune (Town) qui contient toute les communes et code postaux, en sachent qu'un supplier appartient a une seul commune (1,1), et une commune peut avoir plusieurs ou pas de supplier (0,n).
Si je devais écrire une query sql ça irait vite, mais la je ne veux pas m'ennuyer avec des query, vu que j'ai voulu prendre hibernate pour me débarrasser de ce tas de code superflus et redondent.
La ou je cale c'est qu'a l'affichage ils ne veut pas récupérer mon idTown pour faire la jointure entre les deux tables donc je n'obtiens rien pour la commune et le code postal.
je vous exposes mon code,
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 public void RechercheSupplier() { s = helper.getSessionFactory().openSession(); s.beginTransaction(); su = (Supplier) s.get(Supplier.class, Integer.parseInt(t2.jTextFieldRechIdSupplier.getText())); // je pense qu'il doit manquer quelque chose ici...:cry: s.getTransaction().commit(); s.close(); s = helper.getSessionFactory().openSession(); s.beginTransaction(); t2.jTextAreaRechSupplier.append(this.SupplierID = " N° Supplier: " + su.getSupplierName() + " "); t2.jTextFieldRechIdSupplier.setText(String.valueOf(su.getSupplierId())); t2.jTextAreaRechSupplier.append(this.SupplierName = "Nom de la Societé: " + su.getSupplierName() + " "); t2.jTextFieldRechNomSupplier.setText(su.getSupplierName()); t2.jTextAreaRechSupplier.append(this.SupplierTel = " Telephone: " + su.getSupplierPhone() + " "); t2.jTextFieldRechTelSupplier.setText(su.getSupplierPhone()); t2.jTextAreaRechSupplier.append(this.SupplierEmail = " Email: " + su.getSupplierEmail() + " "); t2.jTextFieldRechEmailSupplier.setText(su.getSupplierEmail()); t2.jTextAreaRechSupplier.append(this.SupplierAdr = " Adresse: " + su.getSupplierAddress() + " "); t2.jTextFieldRechAdrSupplier.setText(su.getSupplierAddress()); t2.jTextAreaRechSupplier.append(this.SupplierNum = " N°: " + su.getSupplierNumber() + " "); t2.jTextFieldRechNumSupplier.setText(String.valueOf(su.getSupplierNumber())); t2.jTextAreaRechSupplier.append(this.SupplierCom = " Commune: " + to.getTownName()); t2.jTextFieldRechComSupplier.setText(to.getTownName()); t2.jTextAreaRechSupplier.append(this.SupplierCp = " Code Postal: " + to.getTownPostcode()); t2.jTextFieldRechCpSupplier.setText(to.getTownPostcode()); s.getTransaction().commit(); s.close(); }
Voila je ne suis pas un pro en développement mais au cas ou j'avais garder ceci si vraiment je n'arrivais pas a faire autrement que une query, mais en HQL je pense que la syntaxe change beaucoup si vous pouviez m’éclairer sur cela aussi merci
PS: Je présente ce programme a mon TFE donc je tien a bien faire cela
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 String hql = "SELECT Supplier_ID,Supplier_Name,Supplier_Email,Supplier_Address,Supplier_Number,Supplier_Phone,Town_PostCode,Town_Name FROM Supplier,Town WHERE Supplier_ID = '" + t2.jTextFieldRechIdSupplier.getText() + "' AND Supplier.Town_ID = Town.Town_ID"; Query query = s.createQuery(hql);![]()
Partager