[RESOLVIDO]Duvida Consulta JPA - EJB QL

5 respostas
L

Olá pessoal,

Estou com um problema ao transcrever uma consulta SQL para uma consulta EJB QL… Tentei de diversas formar transcrever a seguinte query:

select * from tecnico t 
  inner join tecnico_usina tu on t.tec_id = tu.tus_tec_id 
  join usina u on u.usi_id = tu.tus_usi_id
  join orgao_usina ou on ou.ous_usi_id = u.usi_id
  join orgao o on o.org_id = ou.ous_org_id 
  join orgao_usuario osu on osu.use_org_id = 1214;

e não consegui, alguém pode me auxiliar?

Att.

llnunes

5 Respostas

caio_ferreira

Acho que ficaria assim

select * from tecnico t   
  inner join t.tecnico_usina tu
  join tu.usina u
  join u.orgao_usina ou
  join ou.orgao o
  join o.orgao_usuario osu 
where
 osu.use_org_id = 1214;
L

caio_ferreira:
Acho que ficaria assim

select * from tecnico t inner join t.tecnico_usina tu join tu.usina u join u.orgao_usina ou join ou.orgao o join o.orgao_usuario osu where osu.use_org_id = 1214;

Olá caio_ferreira, obrigado por me ajudar … mas quando testei a solução que vc mandou foi me apresentado o seguinte erro:

"An exception occurred while creating a query in EntityManager: Exception Description: Error compiling the query [select t from Tecnico t inner join t.TecnicoUsina tu join tu.Usina u join u.OrgaoUsina ou join ou.Orgao o join o.OrgaoUsuario osu where osu.useOrgId = :orgId; ], line 1, column 37: unknown state or association field [TecnicoUsina] of class [br.gov.ana.entities.Tecnico]."

Foi o mesmo que me foi apresentado em outras tentativas frustradas…

Você já se deparou com esse erro?

caio_ferreira

na sua classe Tecnico, existe esse campo TecnicoUsina? esse deve ser o nome da propriedade, não da classe.

M

Fala llnunes

Tente o mesmo select enviado pelo caio_ferreira, mas em ves de colocar o nome das tabelas do banco, substituir pelo nome da classe e atributos, mais ou menos como no select abaixo…

select t from Tecnico t
inner join t.tecnico_usina tu
join tu.usina u
join u.orgao_usina ou
join ou.orgao o
join o.orgao_usuario osu
where
osu.use_org_id = 1214;

L

Consegui :lol:

select t from Tecnico t
INNER JOIN t.tecnicoUsinaList tu
INNER JOIN tu.tusUsiId u
INNER JOIN u.orgaoUsinaList ous
WHERE ous.ousOrgId = 1214 ";

Obrigado Galera!

Criado 31 de maio de 2012
Ultima resposta 1 de jun. de 2012
Respostas 5
Participantes 3