6
respostas

Erro

Estou me depandado com o seguite erro no curso de https://cursos.alura.com.br/course/spring-mvc-thymeleaf-bootstrap/task/80881

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

6 respostas

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

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

Bom dia,

Conforme a mensagem de erro, seu import de User no arquivo PedidoController está errado. Vc está importando o User do pacote do org.springframework.security.core.userdetails.User, ao invés do seu User que está em br.com.alura.mvc.mudi.model.User.

Neste caso, basta ajustar o import da sua entidade User para resolver o problema.

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

Oi Leobaldo! Tudo bem?

Na sua classe UserRepository, o User importado também está diferente da classe que você criou no projeto, de uma forma parecida com a que conversamos num outro tópico, se não me engano.

Você precisa utilizar lá em cima da classe UserRepository, no lugar de import org.springframework.security.core.userdetails.User, o import import br.com.alura.mvc.mudi.model.User. Assim, o problema de incompatibilidade de tipos que você está tendo vai ser resolvido.

Qualquer dúvida, estou à disposição!

sobre esse erro conseguir solucionar o org.springframework.security.core.userdetails.User estava sendo importado na classe pedido. Agora estou com esses erros :

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pedidoRepository' defined in br.com.alura.mvc.mudi.repository.PedidoRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Cannot resolve reference to bean 'jpaMappingContext' while setting bean property 'mappingContext'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMappingContext': Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: br.com.alura.mvc.mudi.controller.HomeController

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMappingContext': Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: br.com.alura.mvc.mudi.controller.HomeController

Caused by: org.hibernate.AnnotationException: No identifier specified for entity: br.com.alura.mvc.mudi.controller.HomeController

package br.com.alura.mvc.mudi.controller; import br.com.alura.mvc.mudi.model.Pedido; import br.com.alura.mvc.mudi.model.StatusPedido; import br.com.alura.mvc.mudi.repository.PedidoRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping;

import javax.persistence.Entity; import java.security.Principal; import java.util.List; @Entity @Controller @RequestMapping("/home") public class HomeController {

@Autowired
private PedidoRepository pedidoRepository;

@GetMapping
public String home(Model model, Principal principal) {
    List<Pedido> pedidos = pedidoRepository.findAllByUsuario(principal.getName());
    model.addAttribute("pedidos", pedidos);
    return "home";
}

@GetMapping("/{status}")
public String porStatus(@PathVariable("status") String status, Model model) {
    List<Pedido> pedidos = pedidoRepository.findByStatus(StatusPedido.valueOf(status.toUpperCase()));
    model.addAttribute("pedidos", pedidos);
    model.addAttribute("status", status);
    return "home";
}

@ExceptionHandler(IllegalArgumentException.class)
public String onError() {
    return "redirect:/home";
}

}