Reputation: 93
I have the following class:
@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "Municipios")
public class Municipio {
@Id
private String nombreMunicipio;
@ManyToOne
@JoinColumn(name = "nombreProvincia", nullable = false)
private Provincia nombreProvincia;
}
how would I go about getting all the Municipios given the string ID of the province? what would the controller and repository look like? I've been trying for hours and can't find the answer
Edit: decided to post my repository and controller
public interface MunicipioRepo extends JpaRepository<Municipio, Integer> {
boolean existsByNombreMunicipio(String nombreMunicipio);
Municipio findByNombreMunicipio(String nombreMunicipio);
List<Municipio> findAllByNombreProvincia(final Provincia provincia);
}
@GetMapping("/municipiosenprovincia")
public List<Municipio> getMunicipiosEnProvincia(@RequestParam String nombreProvincia){
System.out.printf(nombreProvincia);
Optional<Provincia> miProv = provinciaRepo.findById(nombreProvincia);
return municipioRepo.findAllByNombreProvincia(miProv.get());
}
Upvotes: 2
Views: 4475
Reputation: 1596
Assuming that primary key of Provincia
is id
:
public interface MunicipioRepo extends JpaRepository<Municipio, Integer> {
...
List<Municipio> findAllByNombreProvinciaId(final String provinciaId);
}
And just pass provinciaId
to this method:
// getMunicipiosEnProvincia method in controller
...
return municipioRepo.findAllByNombreProvinciaId(nombreProvincia); // here nombreProvincia is the id of Provincia
Upvotes: 2