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
方法是将
示例
作为参数的方法

  • 有关更改的详细信息,请参阅:
  • 有关示例查询的文档,请参见:

作为Spring Data Kay(2.0)的一部分,方法
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;
         }