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}

4 Respostas

E

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

Se você colocou no seus Beans os JOINS você faz tipo isso:

SELECT c FROM Cliente c WHERE c.codigoPessoaFisicaCliente.cpfPessoaFisica = :cpfPessoaFisica

E

Olha um exemplo de configuração:

private static final long serialVersionUID = 1L;

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “codigoCliente”)

private Integer codigoCliente;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “numeroCliente”)

private int numeroCliente;

@Column(name = “complementoCliente”)

private String complementoCliente;

@Column(name = “bairroCliente”)

private String bairroCliente;

@JoinColumn(name = “codigoCEPCliente”, referencedColumnName = “codigoCEP”)

@ManyToOne(optional = false)

private CEP codigoCEPCliente;

@JoinColumn(name = “codigoConjugueCliente”, referencedColumnName = “codigoConjugue”)

@ManyToOne

private Conjugue codigoConjugueCliente;

@JoinColumn(name = “codigoPessoaFisicaCliente”, referencedColumnName = “codigoPessoaFisica”)

@ManyToOne

private PessoaFisica codigoPessoaFisicaCliente;

@JoinColumn(name = “codigoPessoaJuridicaCliente”, referencedColumnName = “codigoPessoaJuridica”)

@ManyToOne

private PessoaJuridica codigoPessoaJuridicaCliente;
Lfbdsan

Olha primeiro deixa eu pedir desculpas se estou sendo “ignorante” ou burro mesmo…kkkk
Vou colocar minhas classes aqui para melhor analise.

TabProduto.java (55.3 KB)

TabProdutoPdv.java (20.0 KB)

TabFluxo.java (70.6 KB)

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…

rapaz até eu fiquei loco agora…

Criado 23 de maio de 2016
Ultima resposta 23 de mai. de 2016
Respostas 4
Participantes 2