1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Salvando Venda e VendaItem com Hibernate

Galera gostaria da ajuda de voces,

Assim eu tenho uma classe Venda:

package br.com.facilita.beans;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Venda extends Entidade implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 539669918630214274L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String data;

    @Column(precision = 9, scale = 2)
    private BigDecimal desconto;

    @Column(precision = 9, scale = 2)
    private BigDecimal valortotal;

    @OneToMany(mappedBy = "venda", targetEntity = VendaItem.class, fetch = FetchType.LAZY, cascade=CascadeType.PERSIST)
    private List<VendaItem> produtos;

    public List<VendaItem> getProdutos() {
        return produtos;
    }

    public void setProdutos(List<VendaItem> produtos) {
        this.produtos = produtos;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public BigDecimal getDesconto() {
        return desconto;
    }

    public void setDesconto(BigDecimal desconto) {
        this.desconto = desconto;
    }

    public BigDecimal getValortotal() {
        return valortotal;
    }

    public void setValortotal(BigDecimal valortotal) {
        this.valortotal = valortotal;
    }

}

e tenho tbm uma classe VendaItem:

package br.com.facilita.beans;

import java.io.Serializable;
import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;

@Entity
public class VendaItem extends Entidade implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = -5232811490167733237L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @OneToOne
    private Produto produto;

    private Integer quantidade;

    @Column(precision = 9, scale = 2)
    private BigDecimal valorvendaproduto;

    @ManyToOne
    @JoinColumn(name = "venda_id")
    private Venda venda;

    public Venda getVenda() {
        return venda;
    }

    public void setVenda(Venda venda) {
        this.venda = venda;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Produto getProduto() {
        return produto;
    }

    public void setProduto(Produto produto) {
        this.produto = produto;
    }

    public Integer getQuantidade() {
        return quantidade;
    }

    public void setQuantidade(Integer quantidade) {
        this.quantidade = quantidade;
    }

    public BigDecimal getValorvendaproduto() {
        return valorvendaproduto;
    }

    public void setValorvendaproduto(BigDecimal valorvendaproduto) {
        this.valorvendaproduto = valorvendaproduto;
    }
}

eu salvo os itens tudo tranquilo, ele popula as tabelas tanto a Venda como a VendaItem porem a venda itens o campo do id_vendas fica nullo, salva a lista de itemvendas mais nao insere o id_venda.

Alguem sabe o que posso estar fazendo errado ?

  • Atualizei minha resposta (EDIT 1)

    lucastody   27 de out de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java hibernate ou faça a sua própria pergunta.