O que está de errado passando de sql para JPQL?
SQL:
SELECT * FROM perfilusuario
LEFT JOIN apropriar ON apropriar.apropriacaoPerfil_idUsuario = perfilusuario.idUsuario
WHERE idApropriacao IS NULL and tipoUsuario <> 'Administrador';
JPQL:
select p
from PerfilUsuario p
left outer join Apropriar a on a.apropriacaoPerfil.idUsuario = p.idUsuario
where a.idApropriacao IS NULL
and p.tipoUsuario <> 'Administrador
Erro obtido:
[code]Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 1, column 82 [select p from br.com.sisapropriacao.modelo.PerfilUsuario p left join Apropriar a on a.apropriacaoPerfil.idUsuario = p.idUsuario where a.idApropriacao IS NULL and p.tipoUsuario <> 'Administrador'] [/code]
seu join está errado.
Tem que ser assim
select p from Pessoa p join p.casa c
Você não precisa passar ID.
Esse post aqui pode te ajudar com sintaxe: JPA Consultas e Dicas
Tenta assim:
select p
from PerfilUsuario p
left outer join p.apropriar a
where a.idApropriacao IS NULL
and p.tipoUsuario <> 'Administrador'
http://docs.oracle.com/cd/E11035_01/kodo41/full/html/ejb3_langref.html#ejb3_langref_Joins
[quote=ffontoura]Tenta assim:
select p
from PerfilUsuario p
left outer join p.apropriar a
where a.idApropriacao IS NULL
and p.tipoUsuario <> 'Administrador'
http://docs.oracle.com/cd/E11035_01/kodo41/full/html/ejb3_langref.html#ejb3_langref_Joins
[/quote]
Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: apropriar of: br.com.sisapropriacao.modelo.PerfilUsuario [select p from br.com.sisapropriacao.modelo.PerfilUsuario p left outer join p.apropriar a where a.idApropriacao IS NULL and p.tipoUsuario <> 'Administrador']
[quote=jakefrog]seu join está errado.
Tem que ser assim
select p from Pessoa p join p.casa c
Você não precisa passar ID.
Esse post aqui pode te ajudar com sintaxe: JPA Consultas e Dicas[/quote]
Jake estou fazendo de acordo com o seu link informado.
Mais estou obtendo o seguinte erro.
could not resolve property: idApropriacao of: br.com.sisapropriacao.modelo.PerfilUsuario [select p from br.com.sisapropriacao.modelo.PerfilUsuario p left join fetch p.apropriar where p.idApropriacao IS NULL and p.tipoUsuario <> 'Administrador']
javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)
O campo idApropriacao se encontra na minha classe modelo Apropriar. O que posso estar fazendo de errado ?
[quote=luis.feitoza]Mas estou obtendo o seguinte erro.
could not resolve property: idApropriacao of: br.com.sisapropriacao.modelo.PerfilUsuario [select p from br.com.sisapropriacao.modelo.PerfilUsuario p left join fetch p.apropriar where p.idApropriacao IS NULL and p.tipoUsuario <> 'Administrador']
javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)
O campo idApropriacao se encontra na minha classe modelo Apropriar. O que posso estar fazendo de errado ?
[/quote]Cara a mensagem de erro falou que ñ está encontrando esse cara. Olha só oq vc está fazendo: p.idApropriacao. Dentro do “P” existe esse campo?
[quote=jakefrog][quote=luis.feitoza]Mas estou obtendo o seguinte erro.
could not resolve property: idApropriacao of: br.com.sisapropriacao.modelo.PerfilUsuario [select p from br.com.sisapropriacao.modelo.PerfilUsuario p left join fetch p.apropriar where p.idApropriacao IS NULL and p.tipoUsuario <> 'Administrador']
javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)
O campo idApropriacao se encontra na minha classe modelo Apropriar. O que posso estar fazendo de errado ?
[/quote]Cara a mensagem de erro falou que ñ está encontrando esse cara. Olha só oq vc está fazendo: p.idApropriacao. Dentro do “P” existe esse campo?[/quote]
Nessa caso p.idApropriacao deveria estar vindo da entidade Apropriar? Se sim, então tem.
Bom dia, hoje de manhã fui dar uma análisada e consegui fazer isso funcionar"impressionante como as coisas mais faceis as vezes tira um bom tempo" enfim, seguem a consulta, não sei se é bem desta forma mais me trouxer o resultado que eu queria.
Obrigado a todos.
Seguem o link que me ajudou bastante.
http://docs.oracle.com/cd/E11035_01/kodo41/full/html/ejb3_langref.html
É obrigado jakefrog