Oui mais comme je te l'ai précisé, la méthode createQuery ne te permets de requêter que des propriétés de tes entités.
Ta contrainte de clef étrangère n'est pas bindée sur une propriété de tes entités, tu ne peux
pas effectuer une requête du type "select c from Societe c where c.SPECIALITE_ID=:id" en jpa .
Tu peux exécuter ta requête mais uniquement en sql natif avec la méthode createNativeQuery
1 2
|
Query query = em.createNativeQuery("select c from Societe c where c.SPECIALITE_ID=:id",Societe.class); |
Si tu veux utiliser une requête JPA, il faut d'abord que tu corriges ton mapping dans la classe Societe en lui précisant la colonne de jointure vers la table Specialite.
1 2 3 4 5 6
|
public class Societe implements Serializable {
@ManyToOne
@JoinColumn(name = "SPECIALITE_ID")
private Specialite specialite; |
Ensuite tu pourra effectuer la requête JPA
1 2
|
Query query = em.createQuery("select soc from Societe soc where soc.specialite.id=:idSpecialite"); |
Partager