Join com HQL e Anotações.[Resolvido]

4 respostas
natureza

Seguinte.

Tenho o seguinte mapeamento:

@ManyToOne(targetEntity = PessoaJuridicaAssociacaoEntity.class, fetch = FetchType.LAZY) @JoinColumn(name = "cdPessoaSeqProdutor") private PessoaJuridicaAssociacao pessoaJuridicaAssociacao;

Tranquilo.
No meu Hql está:

Quando é executada a sql pelo hibernate, ele gera:

left outer join PESSOAJURIDICAASSOCIACAO P on Objeto.cdPessoaSeqProdutor=P.IDPESSOAJURIDICAASSOCIACAO

Tem de alguma maneira ao invés de ser P.IDPESSOAJURIDICAASSOCIACAO, ser a coluna que eu definir?

Tem como definir isto em alguma anotação?

4 Respostas

F

Não. Os joins do HQL sempre se baseiam nas colunas usadas no mapeamento. Não sei se resolve para o seu caso, pois isso depende muito da lógica da consulta e do que se espera no formato do resultado, mas como você está usando inner join e não está fazendo um fetch para JPA, tente assim:

select obj from Object obj, PessoaJuridicaAssociacao PJA where obj.pessoaJuridicaAssociacao = PJA.outraPropriedade and PJA... // continue com o seu filtro

se você precisar carregar as informações de PessoaJuridicaAssociacao, tente assim:

select obj, JPA from Object obj, PessoaJuridicaAssociacao PJA where obj.pessoaJuridicaAssociacao = PJA.outraPropriedade and PJA... // continue com o seu filtro

Nesse último caso o resultado será uma lista de arrays com duas posições contento na primeira posição instancias de obj e na segunda posição instancias de PJA:

E

Ola pessoal desculpa a incovenienia é que eu abrir um forum , mais ninguem resolveu meu problema ainda, e eu preciso disso com uma certa urgencia por isso venho pedir aqui para vcs me ajudar.
esse é o link do meu forum -
http://www.guj.com.br/posts/list/200921.java#1014453

natureza

Bom na realidade a solução foi usar uma propria solução do hibernate que é

@JoinColumn(name = "cdPessoaSeqProdutor", referencedColumnName="cdPessoaFisicaSEQ")

Ai posso na propriedade referencedColumnName colocar o campo que quero que seja comparado.

Fica ai a Dica !

F

Nesse caso eu não tinha entendido a sua pergunta… :wink:

Criado 18 de março de 2010
Ultima resposta 18 de mar. de 2010
Respostas 4
Participantes 3