rechercher tous les tuples appartenant à une cléf étrangère
Bonjour,
voici une table de donnée qui contient le nom des routes et sa cléf étrangère:
Code:
1 2 3 4 5 6 7 8 9
|
select * from matiere;
+----+--------------+---------+-------------+
| id | name_matiere | route | sommaire_id |
+----+--------------+---------+-------------+
| 1 | aquarel | aquarel | 1 |
| 2 | aq2 | aq2 | 1 |
| 3 | paysage | paysage | 2 |
+----+--------------+---------+-------------+ |
je souhaite rechercher tous les noms des route ayant comme sommmaire_id = 1
voici mes 2 entités:
Code:
1 2 3 4 5 6 7 8 9 10
|
public class Matiere implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nameMatiere;
private String route;
@ManyToOne
private Sommaire sommaire;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public class Sommaire implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nameSommaire;
private String route;
//un sommaire peut avoir plusieur matieres
@OneToMany(mappedBy = "sommaire")
private Collection<Matiere> matieres = new ArrayList<>();
} |
voici mon dao
Code:
1 2 3 4 5 6 7 8 9
|
@RepositoryRestResource
public interface MatiereRepository extends JpaRepository<Matiere, Long> {
public Matiere findByNameMatiere(String nameMatiere);
@RestResource(path="/byRoute")
public List<Matiere> findBySommaire(@Param("rt") String sommaire);
} |
lorsque que je regarde cette page des matières voici ce que je vois:
Code:
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
{
"_embedded" : {
"matieres" : [ {
"nameMatiere" : "aquarel",
"route" : "aquarel",
"_links" : {
"self" : {
"href" : "http://localhost:8181/matieres/1"
},
"matiere" : {
"href" : "http://localhost:8181/matieres/1"
},
"sommaire" : {
"href" : "http://localhost:8181/matieres/1/sommaire"
}
}
}, {
"nameMatiere" : "aq2",
"route" : "aq2",
"_links" : {
"self" : {
"href" : "http://localhost:8181/matieres/2"
},
"matiere" : {
"href" : "http://localhost:8181/matieres/2"
},
"sommaire" : {
"href" : "http://localhost:8181/matieres/2/sommaire"
}
}
}, {
"nameMatiere" : "paysage",
"route" : "paysage",
"_links" : {
"self" : {
"href" : "http://localhost:8181/matieres/3"
},
"matiere" : {
"href" : "http://localhost:8181/matieres/3"
},
"sommaire" : {
"href" : "http://localhost:8181/matieres/3/sommaire"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:8181/matieres{?page,size,sort}",
"templated" : true
},
"profile" : {
"href" : "http://localhost:8181/profile/matieres"
},
"search" : {
"href" : "http://localhost:8181/matieres/search"
}
},
"page" : {
"size" : 20,
"totalElements" : 3,
"totalPages" : 1,
"number" : 0
}
} |
dans le dictionnaire je ne vois pas ma recherche "findBySommaire"
Code:
1 2
|
public List<Matiere> findBySommaire(@Param("rt") String sommaire); |
quel est le code à mettre et ou le mettre pour obtenir mon résultat des nom des routes(mettre la méthode findBySommaire dans le reposirtory de matière est t'il bon ?
quel est la bonne url pour obtenir le nom des "route" en ayant le numéro id_sommaire ?
merci de vos réponses ?