Não consigo de forma nenhuma fazer Join de tabelas
4 respostas
Lfbdsan
To tentando faz uns 3 dias, mas não tem forma de fazer.
Tabelas TabProduto e TabProdutoPdv…
fiz da seguinte forma: public List<TabProdutoPdv> list() { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction t = session.beginTransaction(); List lista = session.createQuery("select TabProdutoPdv(p.f, f.numCupomFiscal, f.codEan, p.des_produto) from TabProdutoPdv f join TabPoduto p WHERE f.numCupomFiscal = 111833").list(); t.commit(); return lista; }
olha a mensagem de erro:
No data type for node: org.hibernate.hql.internal.ast.tree.MethodNode \-[METHOD_CALL] MethodNode: '(' +-[METHOD_NAME] IdentNode: 'TabProdutoPdv' {originalText=TabProdutoPdv} \-[EXPR_LIST] SqlNode: 'exprList' \-[DOT] DotNode: 'tabproduto0_.COD_EAN' {propertyName=codEan,dereferenceType=ALL,propertyPath=codEan,path=f.codEan,tableAlias=tabproduto0_,className=br.com.salina.entities.TabProdutoPdv,classAlias=f} +-[ALIAS_REF] IdentNode: 'tabproduto0_.NUM_REGISTRO' {alias=f, className=br.com.salina.entities.TabProdutoPdv, tableAlias=tabproduto0_} \-[IDENT] IdentNode: 'codEan' {originalText=codEan}
Não da certo porque quanto você tenta fazer isso: select TabProdutoPdv(p.f, f.numCupomFiscal, f.codEan, p.des_produto) deste jeito já não é mais um modelo do tipo TabProdutoPdv certo era você colocar um f.*
E
edinhocoelho
Se você colocou no seus Beans os JOINS você faz tipo isso:
SELECT c FROM Cliente c WHERE c.codigoPessoaFisicaCliente.cpfPessoaFisica = :cpfPessoaFisica
TabFluxo é onde tem todo movimento, TabProdutoPdv a venda dos itens e os cupons, TabProduto tem o descritivo dos produtos.
List lista = session.createQuery(“select TabProdutoPdv(p.f, f.numCupomFiscal, f.codEan, p.des_produto) from TabProdutoPdv f join TabPoduto p WHERE f.numCupomFiscal = 111833”).list();
No cupom de venda 111833 tem o cod_ean da tabela TabProdutoPdv e o descritivo dela está na TabProduto onde cod_barra_principal e des_produto…