Java JPA通过外键查找

Java JPA通过外键查找,java,spring,spring-boot,Java,Spring,Spring Boot,我有以下课程: @Data @Entity @NoArgsConstructor @AllArgsConstructor @Table(name = "Municipios") public class Municipio { @Id private String nombreMunicipio; @ManyToOne @JoinColumn(name = "nombreProvincia", nullable = fal

我有以下课程:

@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "Municipios")
public class Municipio {
    @Id
    private String nombreMunicipio;

    @ManyToOne
    @JoinColumn(name = "nombreProvincia", nullable = false)
    private Provincia nombreProvincia;        
}
如果给定该省的字符串ID,我将如何获取所有市政官员?控制器和存储库是什么样子的?我已经试了好几个小时,找不到答案

编辑:决定发布我的存储库和控制器

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());
    }
公共接口市政EPO扩展了JpaRepository{
布尔存在synombremunicipio(字符串nombreMunicipio);
市政findByNombreMunicipio(字符串名称为市政);
列出findAllByNombreProvincia(最终Provincia Provincia);
}
@GetMapping(“/municipiosenprovincia”)
公共列表getMunicipiosEnProvincia(@RequestParam String nombreProvincia){
系统输出打印(nombreProvincia);
可选的miProv=省级报告。findById(nombreProvincia);
返回municipioRepo.findAllByNombreProvincia(miProv.get());
}

假设
Provincia
的主键是
id

public interface MunicipioRepo extends JpaRepository<Municipio, Integer> {
    ...
    List<Municipio> findAllByNombreProvinciaId(final String provinciaId);
}

您必须编写一个JPQL,它可以从省ID中选择所有的市政府。这很有效!省的id也是NombreProvincia,因此必须调用存储库函数findAllByNombreProvinciaNombreProvincia()。很高兴为您提供帮助:)
// getMunicipiosEnProvincia method in controller
...
return municipioRepo.findAllByNombreProvinciaId(nombreProvincia); // here nombreProvincia is the id of Provincia