Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

cannot find symbol (tentei as opções dos outros tópicos sugeridos, mas não solucionou)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

PagamentoControler:

package br.com.alurafood.pagamentos.controller;

import br.com.alurafood.pagamentos.dto.PagamentoDto;
import br.com.alurafood.pagamentos.service.PagamentoService;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.util.UriComponentsBuilder;

import java.net.URI;

@RestController
@RequestMapping("/pagamentos")
public class PagamentoControler {

    @Autowired
    private PagamentoService service;

    @GetMapping
    public Page<PagamentoDto> listar(@PageableDefault(size = 10) Pageable paginacao) {
        return service.obterTodos(paginacao);
    }

    @GetMapping("/{id}")
    public ResponseEntity<PagamentoDto> detalhar(@PathVariable @NotNull Long id) {
        PagamentoDto dto = service.obterPorId(id);
        return ResponseEntity.ok(dto);
    }

    @PostMapping
    public ResponseEntity<PagamentoDto> cadastrar(@RequestBody @Valid PagamentoDto dto, UriComponentsBuilder uriBuilder) {
        PagamentoDto pagamento = service.criarPagamento(dto);
        URI endereco = uriBuilder.path("/pagamentos/{id}").buildAndExpand(pagamento.getId()).toUri();

        return ResponseEntity.created(endereco).body(pagamento);
    }

    @PutMapping("/{id}")
    public ResponseEntity<PagamentoDto> atualizar(@PathVariable @NotNull Long id, @RequestBody @Valid PagamentoDto dto) {
        PagamentoDto atualizado = service.atualizarPagamento(id, dto);
        return ResponseEntity.ok(atualizado);
    }

}

PagamentoDto:

package br.com.alurafood.pagamentos.dto;

import br.com.alurafood.pagamentos.model.Status;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;

@Getter
@Setter
public class PagamentoDto {
    private Long id;
    private BigDecimal valor;
    private String nome;
    private String numero;
    private String expiracao;
    private String codigo;
    private Status status;
    private Long formaDePagamentoId;
    private Long pedidoId;
}
3 respostas

Olá, Thiago! Tudo bem?

O erro "cannot find symbol" indica que o compilador não está conseguindo encontrar o método getId() na classe PagamentoDto. Isso pode acontecer por algumas razões:

  1. Lombok não configurado corretamente: Certifique-se de que o Lombok está corretamente configurado no seu projeto. Verifique se você tem a dependência do Lombok no seu pom.xml. Além disso, assegure-se de que o plugin do Lombok está instalado no seu IDE.

    Exemplo de dependência no pom.xml:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.24</version> <!-- Verifique se está usando a versão mais recente -->
        <scope>provided</scope>
    </dependency>
    
  2. Recompilação do projeto: Às vezes, o IDE pode não reconhecer as anotações do Lombok imediatamente. Tente limpar e recompilar o projeto para ver se o erro persiste.

Se tudo estiver configurado corretamente e o erro ainda persistir, pode ser necessário reiniciar o IDE ou invalidar os caches do mesmo.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Armando, não resolveu, já tinha a dependência no pom.xml, e já tinha conferido o plugin do Lombok, e até na opção Annotation Processors como foi mencionado em outra situação, e continua da mesma maneira.

solução!

Pessoal, o meu resolveu depois que coloquei o seguinte código no pom.xml:

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version>
            <configuration>
                <source>17</source> <!-- ou a versão do seu Java -->
                <target>17</target>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>1.18.30</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>