@erickferreira escreveu:
Possuo um projeto que possui uma classe Cliente, Produto e Compra onde em uma tabela mysql possui um relacionamento que n:n entre produto e compra (que se cria a tabela compraproduto).
na minha CompraDAO estou tentando fazer uma consulta para listar todos os produtos que estão inseridos em uma determinada compra
public List<Produto> carregarCarrinho(Compra compra){ List<Produto> listaProduto; Session session = HibernateUtil.getSessionFactory().openSession(); String sql = "from Produto p, compraproduto cp where idCompra = 1 and p.idProduto = cp.idProduto"; //String sql = "from Produto p join p.compraproduto cp where cp.idCompra = :id and p.idProduto = cp.idProduto"; listaProduto = session.createQuery(sql).setParameter("id", compra.getIdCompra()).list(); session.close(); return listaProduto; }
Porém ele dá a mensagem que compraproduto não está mapeado
Advertência: #{cadastroCompraBean.selecionaCompra()}: org.hibernate.hql.internal.ast.QuerySyntaxException: compraproduto is not mapped [from modelo.Produto p, compraproduto cp where idCompra = 1 and p.idProduto = cp.idProduto]
como compraproduto é o nome da tabela do relacionamento entre duas tabelas, não foi criado uma classe para ela. Como faço para mapear ou teria alguma outra maneira de fazer esse tipo de consulta.
Mensagens: 15
Participantes: 6