Java FindOne不能使用Spring
晚上好,我的春天有点问题Java FindOne不能使用Spring,java,spring,spring-boot,netbeans,spring-data,Java,Spring,Spring Boot,Netbeans,Spring Data,晚上好,我的春天有点问题findOne返回以下错误: org.springframework.data.repository.query.querybyexampleexecutor可以 不适用于给定类型 必填项:示例 找到长 下面是一些代码,看看我是否能帮上忙。:)多谢各位 @RestController @RequestMapping("/produtos") public class ProdutoResource { @Autowired private Produto
findOne
返回以下错误:
org.springframework.data.repository.query.querybyexampleexecutor可以
不适用于给定类型
必填项:示例
找到长
下面是一些代码,看看我是否能帮上忙。:)多谢各位
@RestController
@RequestMapping("/produtos")
public class ProdutoResource {
@Autowired
private ProdutoServico produtoServico;
public ProdutoResource(ProdutoServico produtoServico){
this.produtoServico = produtoServico;
}
@GetMapping
@ResponseBody
public List<Produto> findAll(){
return this.produtoServico.findAll();
}
@RequestMapping(value = "{/id}")
@ResponseBody
public Produto find(@PathVariable(value = "id") Long id){
return this.produtoServico.find(id);
}
@存储库
公共接口ProdutRepository扩展了JpaRepository{
}
您需要为请求映射指定方法类型
add method=RequestMethod.GET如下
@RequestMapping(method = RequestMethod.GET,value = "{/id}")
@ResponseBody
public Produto find(@PathVariable(value = "id") Long id){
return this.produtoServico.find(id);
}
这应该可以解决API层的问题。有关更多信息,请添加模型和存储库类
更新
下面使用——对积垢最有效(积垢沉淀)
@存储库
公共接口ProdutRepository扩展了Crudepository{
}
您需要为请求映射指定方法类型
add method=RequestMethod.GET如下
@RequestMapping(method = RequestMethod.GET,value = "{/id}")
@ResponseBody
public Produto find(@PathVariable(value = "id") Long id){
return this.produtoServico.find(id);
}
这应该可以解决API层的问题。有关更多信息,请添加模型和存储库类
更新
下面使用——对积垢最有效(积垢沉淀)
@存储库
公共接口ProdutRepository扩展了Crudepository{
}
方法ProdutoRepository.findOne(示例var1)
获取一个Produto
并返回匹配结果
Produto p = new Produto();
p.setName("something");
Example<Produto> match = Example.of(p);
Optional<Produto> result = produtoRepository.findOne(match);
方法
ProdutoRepository.findOne(示例var1)
获取一个Produto
并返回匹配结果
Produto p = new Produto();
p.setName("something");
Example<Produto> match = Example.of(p);
Optional<Produto> result = produtoRepository.findOne(match);
试着改变
value="{/id}"
到
在控制器的@RequestMapping内,还检查表中主键值的数据类型是否与模型类中id的数据类型相同。希望这有助于解决您的问题。尝试改变
value="{/id}"
到
在控制器的@RequestMapping内,还检查表中主键值的数据类型是否与模型类中id的数据类型相同。希望这对您的问题有所帮助。作为Spring Data Kay(2.0)的一部分,方法
findOne(ID)
被重命名为findById(ID)
。因此,剩下的唯一findOne
方法是将示例
作为参数的方法
- 有关更改的详细信息,请参阅:
- 有关示例查询的文档,请参见:
findOne(ID)
被重命名为findById(ID)
。因此,剩下的唯一findOne
方法是将示例
作为参数的方法
- 有关更改的详细信息,请参阅:
- 有关示例查询的文档,请参见:
- 谢谢,内容如下:
@Override
public Produto find(Long id) {
Optional<Produto> produto = produtoRepository.findById(id);
Produto prod = new Produto();
prod.setId(produto.get().getId());
prod.setNome(produto.get().getNome());
prod.setDataCriacao(produto.get().getDataCriacao());
prod.setQtd(produto.get().getQtd());
return prod;
}
@覆盖
公共Produto find(长id){
可选produto=produtoRepository.findById(id);
Produto prod=新Produto();
prod.setId(produto.get().getId());
prod.setNome(produto.get().getNome());
prod.setDataCriacao(produto.get().getDataCriacao());
prod.setQtd(produto.get().getQtd());
返回产品;
}
邮递员
{
“id”:2
“nome”:“Produto2”
“qtd”:50
“Datacriaco”:空
}
注意:dataCriacao实际上是空的。谢谢,它如下所示:
@Override
public Produto find(Long id) {
Optional<Produto> produto = produtoRepository.findById(id);
Produto prod = new Produto();
prod.setId(produto.get().getId());
prod.setNome(produto.get().getNome());
prod.setDataCriacao(produto.get().getDataCriacao());
prod.setQtd(produto.get().getQtd());
return prod;
}
@覆盖
公共Produto find(长id){
可选produto=produtoRepository.findById(id);
Produto prod=新Produto();
prod.setId(produto.get().getId());
prod.setNome(produto.get().getNome());
prod.setDataCriacao(produto.get().getDataCriacao());
prod.setQtd(produto.get().getQtd());
返回产品;
}
邮递员
{
“id”:2
“nome”:“Produto2”
“qtd”:50
“Datacriaco”:空
}
注意:dataCriacao实际上是空的。你能发布你的
ProdutRepository
类吗?我按照你的要求进行了编辑。谢谢你。ups,我们还需要QueryByExampleExecutor。你能发布你的ProdutRepository
类吗?我根据你的要求进行了编辑。谢谢。ups,我们还需要QueryByExampleExecutor。我按您的要求编辑了。非常感谢。我试过了,但没有成功。你能添加你的整个服务层吗?你为什么要使用这个.repository?我按照你的要求进行了编辑。非常感谢。我试过了,但没有成功。你能添加你的整个服务层吗?为什么要使用这个.repository?
value="{/id}"
value="/{id}"
@Override
public Produto find(Long id) {
Optional<Produto> produto = produtoRepository.findById(id);
Produto prod = new Produto();
prod.setId(produto.get().getId());
prod.setNome(produto.get().getNome());
prod.setDataCriacao(produto.get().getDataCriacao());
prod.setQtd(produto.get().getQtd());
return prod;
}