Bonjour,
je suis coincé lors de la jointure, à chaque fois j'obtiens le message d'erreur suivante : "ERREUR: la colonne t0.prop_id n'existe pas" et voici la requête qui est appelée :
Call: SELECT t1.prop_id, t1.prop_nom FROM caracteristiques t0, proprietes t1 WHERE ((t0.car_fk_produits = ?) AND (t0.prop_id = t1.car_fk_proprietes))
, et pour "t0.prop_id = t1.car_fk_proprietes" ça devrait être t1.prop_id = t0.car_fk_proprietes, j'ai donc besoin d'aide pour cela :s
voilà ma classe Proprietes :
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
| @Entity
@Table(name="proprietes")
public class Proprietes {
private int id;
private String nom;
private List<Caracteristiques> caracteristiques;
@Id
@Column(name="prop_id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="prop_nom")
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
@OneToMany(targetEntity=Caracteristiques.class)
@JoinColumn(name="prop_id", referencedColumnName="car_fk_proprietes")
public List<Caracteristiques> getCaracteristiques() {
return caracteristiques;
}
public void setCaracteristiques(List<Caracteristiques> caracteristiques) {
this.caracteristiques = caracteristiques;
}
} |
et voilà ma requête :
1 2 3 4 5 6 7 8 9 10
| public List<Proprietes> configurerParProdId(int id) {
EntityManager em = this.emf.createEntityManager();
em.getTransaction().begin();
List<Proprietes> caracteristiques = em.createQuery(
"SELECT prop FROM Proprietes AS prop JOIN prop.caracteristiques AS car WHERE car.produits = :id",
Proprietes.class).setParameter("id", id).getResultList();
em.getTransaction().commit();
em.close();
return caracteristiques;
} |
Merci d'avance à ceux qui m'aideront.
Partager