[RESOLVIDO] SQL para JPQL

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 cVocê 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 &lt;&gt; '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 &lt;&gt; '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 &lt;&gt; 'Administrador']

[quote=jakefrog]seu join está errado.

Tem que ser assim

select p from Pessoa p join p.casa cVocê 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