Problemas com Join no Hibernate

3 respostas
MarcosPadilha

Galera to com um problema pra conseguir listar os produtos de uma venda.
na tela tenho duas jtable uma jtable de produtos, e outra de vendas, quando listo as vendas, mostra tudo normal, porem gostaria de ao clicar sobre uma venda na jtable que fosse mostrado na jtable de produtos os produtos dessa venda, porém me retorna o seguinte erro

Exception occurred during event dispatching:
org.hibernate.QueryException: could not resolve property: cod_venda of: beans.ItensVendas

evento MouseClicked da jtbable de vendas
private void jtbl_vendasMouseClicked(java.awt.event.MouseEvent evt) {                                         
        // TODO add your handling code here:
        VendasService ven = new VendasService();
        ItensVendasService ite = new ItensVendasService();
        int codigo = Conversoes.stringToInt(jtbl_vendas.getValueAt(jtbl_vendas.getSelectedRow(), 0).toString());
        Vendas venda = ven.findById(codigo);
        jedt_codigo.setText(Conversoes.intToString(venda.getCodigo()));
        jcbx_cliente.setSelectedIndex(venda.getCliente().getCodigo() - 1);
        jedt_total.setText(Conversoes.doubleToString(venda.getTotal()));
        Vector titulo = new Vector();
        titulo.add("Produto");
        titulo.add("Quantidade");
        titulo.add("Valor");
        Vector linhas = new Vector();
        for (ItensVendas itens : ite.findByDesc("cod_venda", jtbl_vendas.getValueAt(jtbl_vendas.getSelectedRow(), 0).toString())) {
            Vector colunas = new Vector();
            colunas.add(itens.getProduto().getDescricao());
            colunas.add(itens.getQuantidade());
            colunas.add(itens.getPreco());
            linhas.add(colunas);
        }
        DefaultTableModel modelo = new DefaultTableModel(linhas, titulo) {

            @Override
            public boolean isCellEditable(int rowIndex, int mColIndex) {
                return false;
            }
        };
        jtbl_produtos.setModel(modelo);

    }
Função findByDesc chamada no MouseClicked
public List<T> findByDesc(String campo, String valor) {
        Session session = HibernateUtil.getSession();
        List<T> obj = session.createCriteria(clazz).add(Restrictions.eq(campo,valor)).list();
        return obj;
    }
bean itensvendas
@Entity()
@Table(name = "itensvendas")
public class ItensVendas implements Serializable {

    @Id
    @Column(name = "codigo")
    private Integer codigo;
    @Column(name = "quantidade")
    private Integer quantidade;
    @Column(name = "preco")
    private Double preco;
    @ManyToOne
    @JoinColumn(name="cod_venda")
    private Vendas venda;
    @ManyToOne
    @JoinColumn(name="cod_produto")
    private Produtos produto;

    getters and setters ...
bean vendas
@Entity
@Table(name = "Vendas")
public class Vendas implements Serializable {

    @Id
    @Column(name = "codigo")
    private Integer codigo;
    @Column(name = "datavenda")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Calendar datavenda;
    @Column(name = "total")
    private Double total;
    @Column(name = "pago")
    private String pago;
    @ManyToOne
    @JoinColumn(name = "cod_cliente", referencedColumnName = "codigo")
    private Clientes cliente;

    getters and setters ...

se puderem ajudar agradeço

[]s a todos

3 Respostas

thiago.correa

Você deve colocar o nome do atributo e não o nome da coluna na tabela! Mesmo assim não achei nehuma propriedade mapeada como cod_venda

MarcosPadilha

ok … vou testar
mas tah mapeada no bean itensvendas

@ManyToOne @JoinColumn(name="cod_venda") private Vendas venda;

se der certo posto aew

por enquanto vlw

MarcosPadilha

avançou um pouco … mas agora parou nesse erro

achei que fosse pq tinha esquecido um getter no bean de Vendas … mas ja conferi e esta certo, se puderem me ajudar novamente … fico agradecido heheheh

tava olhando agora me parece ser algo de incompatibilidade de tipos de dados

[]s

Criado 30 de junho de 2009
Ultima resposta 30 de jun. de 2009
Respostas 3
Participantes 2