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

[Dúvida] Finalização

Criei o projeto de acordo com os exercícios. Mas na hora de salvar, não estou conseguindo. Por gentileza, poderia me informa onde está o erro?

@Entity
public class Produto {
@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
private long id;
@Column (unique = true, nullable = false)
private String nome;
@Column(name = "valor")
private Double preco;

public Produto(){}

public Produto(String nome, Double preco) {
    this.nome = nome;
    this.preco = preco;
}

public long getId() {
    return id;
}

public String getNome() {
    return nome;
}

public Double getPreco() {
    return preco;
}

public void setPreco(Double preco) {
    this.preco = preco;
}

public void setNome(String nome) {
    this.nome = nome;
}
}

Classe Categoria

    @Entity
    public class Categoria {
    @Id
    private long id;
    private String nome;

public Categoria(){}

public Categoria(Long id, String nome) {
    this.id = id;
    this.nome = nome;
}

public long getId() {
    return id;
}

public String getNome() {
    return nome;
}
}

Classe Pedido

@Entity
public class Pedido {
    @Id
    private long id;
    private LocalDate data;

public Pedido(){}

public Pedido(Long id, LocalDate data) {
    this.id = id;
    this.data = data;
}

public long getId() {
    return id;
}

public LocalDate getData() {
    return data;
}
}

Principal

public class Principal {

Produto produto = new Produto("Notebook", 3500.0);
Categoria categoria = new Categoria(1L, "Eletrônicos");
Pedido pedido = new Pedido(1L, LocalDate.now());

produtoRepository.save(produto);
categoriaRepository.save(categoria);
pedidoRepository.save(pedido);
}

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

2 respostas
solução!

Oi Marcos, tudo bem?

Você chegou a criar classes de repositório para suas entidades? São essas classes que vão interagir com o banco de dados. Por exemplo:

public interface ProdutoRepository extends JpaRepository<Produto, Long> {}

Tendo criado as interfaces, você precisa declará-las na classe principal para que seja possível utilizá-las:

public class Principal {

    @Autowired
    private ProdutoRepository produtoRepository;

    @Autowired
    private CategoriaRepository categoriaRepository;

    @Autowired
    private PedidoRepository pedidoRepository;

   

Assim, será possível completar o código para salvar os dados.

Espero ter ajudado e bons estudos! :)

Sim, eu tinha criado as classes repositórios. Mas na verdade, o que estava impedindo é que eu criei uma classe principal e uma classe administrada pelo Spring. Deu certo apenas quando eu estância na classe administrada pelo Spring. Obrigado!