我是Spring boot和Spring data JPA的新手,我正在try 发出一个get请求,以搜索具有相同UF的所有城市的url,但我没有得到它.有人能告诉我如何搜索UFs吗?

@GetMapping(value = {"/{uf}"})
 public List<Cidade> findByUF(@PathVariable String uf){
      return repositorioCidade.findAll();        
 }

以下是我试图做到的:

我的存储库:

public interface RepositorioCidade extends JpaRepository<Cidade,Long>{
    List<Cidade> findByUF(String uf);
}

实体城市:

@Entity
public class Cidade {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long idCidade;  
    @Column(nullable = false)
    private String cidade;      
    private String uf;  
    
    public Long getIdCidade() {
        return idCidade;
    }
    public void setIdCidade(Long idCidade) {
        this.idCidade = idCidade;
    }    
    public String getCidade() {
        return cidade;
    }
    public void setCidade(String cidade) {
        this.cidade = cidade;
    }
    public String getUf() {
        return uf;
    }
    public void setUf(String uf) {
        this.uf = uf;
    }
    

    
}

控制器:

@RestController
@RequestMapping("/cidade")
public class CidadeREST {
    @Autowired
    private RepositorioCidade repositorioCidade;

    @GetMapping
    public Page<Cidade> listar(Pageable page){
        return repositorioCidade.findAll(page);
    }           

    // @GetMapping(value = {"/{uf}"})
    // public List<Cidade> findByUF(@PathVariable String uf){
    //     return repositorioCidade.findAll();        
    // }

    @PostMapping
    public void salvar(@RequestBody Cidade cidade){
        repositorioCidade.save(cidade);
    }

    @PutMapping
    public void alterar(@RequestBody Cidade cidade){
        if(cidade.getIdCidade() > 0)
        repositorioCidade.save(cidade);
    }

    @GetMapping("/{idCidade}")
    public void excluir(@PathVariable Long idCidade){
        repositorioCidade.deleteById(idCidade);
    }
}

推荐答案

您必须将findByUF()方法而不是JPA inbuild方法findAll()与控制器中的repository对象相链接.

Your repository should become

public interface RepositorioCidade extends JpaRepository<Cidade,Long>{
    @Query(nativeQuery= true, value="SELECT * FROM cidade WHERE uf = ?")
    List<Cidade> findByUF(String uf);
}

OR

public interface RepositorioCidade extends JpaRepository<Cidade,Long>{
    List<Cidade> findByUF(String uf);
}

Your Controller should become

@GetMapping(value = {"/{uf}"})
public List<Cidade> findByUF(@PathVariable String uf){
    return repositorioCidade.findByUF(uf);        
}

Java相关问答推荐

Java加密/解密代码转换为PHP不起作用

收听RDX中用户数据的变化

当列顺序更改时,Table View列列表的Change. wasPermanted()总是返回假

日食IDE 2024-03在Ubuntu下崩溃,导致hr_err_pid.log

我应该避免在Android中创建类并在运行时编译它们吗?

为什么接口中的主函数而不是类中的主函数在Java 17中编译和运行没有问题?

从技术上讲,OPC UA客户端是否可以通过转发代理将请求通过 tunel 发送到OPC UA服务器?

JavaFX如何在MeshView中修复多个立方体?

@Rollback @ Transmission在验收测试中不工作

如何在Microronaut中将 map 读取为 map

Java17支持哪个MapR版本?

无法使用Freemarker从XML中读取重复的标记值

Spring动态反序列化JSON可以是列表,也可以只是一个对象

在使用具有不同成本的谓词调用allMatch之前对Java流进行排序会带来什么好处吗?

JFree Chart从图表中删除边框

JavaFX复杂项目体系 struct

接受类及其接口的Java类型(矛盾)

模拟JUnit未检测到返回字符串的方法的任何声纳覆盖

ResponseEntity.控制器截断响应的JSON部分

将@Transactional添加到Spring框架中链下的每个方法会产生什么效果?