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

Como pegar o ID de uma entidade

Estou com uma classe Produtos que tem um relacionamento com a classe Itens. A classe itens se encontra da seguinte forma:


@Entity(name = "Itens")
@Table(name = "itens")
public class Itens {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "id_produto")
    private Produto produto;

    @ManyToMany(mappedBy = "itens")
    private List<Nota> notas;
    private int ordenacao;
    private int quantidade;
    private BigDecimal valor_total;


    public Itens(ItensDTO dto) {
        this.ordenacao = dto.getOrdenacao();
        this.produto = dto.getProduto();
        this.quantidade = dto.getQuantidade();
        this.valor_total = dto.getValor_total();
    }
    
    //getters e setters

Porém no meu DTO eu preciso recuperar o valor numero deste item e não o objeto. Por isso na classe ItensDTO eu coloco o produto como LONG

public class ItensDTO {

    private Long id;
    private int ordenacao;
    private Long produto;
    private int quantidade;
    private BigDecimal valor_total;

    public ItensDTO() {}

    public ItensDTO(Itens itens) {
        this.id = itens.getId();
        this.ordenacao = itens.getOrdenacao();
        this.produto = new Produto(itens.getProduto().getId());
        this.quantidade = itens.getQuantidade();
        this.valor_total = itens.getValor_total();
    }

//getters e setters

Como eu referencio no construtor que o Produto produto da classe Itens é a mesma coisa que o Long Produto da classe ItensDTO?

3 respostas
solução!

Olá Natali, tudo bem?

Para referenciar o id do Produto na classe ItensDTO, você pode utilizar o método getId() da classe Produto. Dessa forma, na classe ItensDTO, você pode fazer o seguinte:

public ItensDTO(Itens itens) {
    this.id = itens.getId();
    this.ordenacao = itens.getOrdenacao();
    this.produto = itens.getProduto().getId();
    this.quantidade = itens.getQuantidade();
    this.valor_total = itens.getValor_total();
}

Assim, você estará atribuindo o id do produto na classe ItensDTO para o id do produto na classe Itens.

Espero ter ajudado e bons estudos!

Estava quase no caminho rsrsrs ... mas e na classe da entidade porque não esta compilando por seu tipo ser PRODUTO: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Na ItensDTO esta tudo certinho:

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

Matheus deu certo agora. Muito obrigada pela ajuda!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software