我是 Spring boot 和 Spring data JPA 的新手,我正在嘗試發出獲取請求以搜索具有相同 UF 的所有城市的 url,但我沒有得到它。任何人都可以闡明我如何才能搜索 UF 嗎?我正在嘗試執行以下操作:
@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);
}
物體Cidade:
@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);
}
}
uj5u.com熱心網友回復:
您必須將findByUF()方法而不是 JPA inbuild 方法findAll()與控制器中的存盤庫物件鏈接。
您的存盤庫應該成為
public interface RepositorioCidade extends JpaRepository<Cidade,Long>{
@Query(nativeQuery= true, value="SELECT * FROM cidade WHERE uf = ?")
List<Cidade> findByUF(String uf);
}
要么
public interface RepositorioCidade extends JpaRepository<Cidade,Long>{
List<Cidade> findByUF(String uf);
}
你的控制器應該成為
@GetMapping(value = {"/{uf}"})
public List<Cidade> findByUF(@PathVariable String uf){
return repositorioCidade.findByUF(uf);
}
uj5u.com熱心網友回復:
我在您的代碼中看到您在控制器中呼叫了一個方法,該方法在 findByUF 的存盤庫層更改主體中不存在
@GetMapping(value = {"/{uf}"})
public List<Cidade> findByUF(@PathVariable String uf){
return repositorioCidade.findAll();
}
對此:
@GetMapping(value = {"/{uf}"})
public List<Cidade> findByUF(@PathVariable String uf){
return repositorioCidade.findByUF(uf);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/452756.html
