Masami
#1
Minha duvida é como converter a seguinte consulta para CriteriaQuery e/ou JPQL:
SELECT *
FROM Servicos
LEFT JOIN ServicosADesconsiderar
ON Servicos.protocolo=ServicosADesconsiderar.protocolo AND ServicosADesconsiderar.indicador=1
Como passar esse “AND ServicosADesconsiderar.indicador=1” junto no join???
O AND é igual no JPQL, não vai mudar nada.
a diferença é que ao invés do nome da coluna, você vai usar o nome do atributo da classe
Masami
#3
[quote=Rodrigo Sasaki]O AND é igual no JPQL, não vai mudar nada.
a diferença é que ao invés do nome da coluna, você vai usar o nome do atributo da classe[/quote]
Como assim?
tentei desta forma e não deu certo:
SELECT s FROM Servicos s
JOIN s.servicosADesconsiderar sad AND sad.indicador=1
Obs. lembrando que preciso passar o AND no JOIN, não posso passar no WHERE porque não vai retornar a mesma consulta.
Ah tá, me desculpe. Agora eu entendi.
O JPA 2.0 não suporta a clausula ON, se não me engano. Então você vai ter que filtar no WHERE o que quiser selecionar.
Masami
#5
cada vez desanimo mais com esse JPA…
se não for possível, vou ter que fazer da maneira que não queria:
SELECT s FROM Servicos s
LEFT JOIN s.servicosADesconsiderar sad
WHERE (sad.indicador=1 OR sad.indicador IS NULL)
tente isso:
SELECT s FROM Servicos s
LEFT JOIN s.servicosADesconsiderar sad WITH (sad.indicador=1 OR sad.indicador IS NULL)
‘ON’ só será suportado na próxima versão do JPA.
[code]na verdade,
SELECT s FROM Servicos s
LEFT JOIN s.servicosADesconsiderar sad WITH (/* As condições que vc utilizaria no ON*/)[/code]
Masami
#9
[quote=novato25][code]na verdade,
SELECT s FROM Servicos s
LEFT JOIN s.servicosADesconsiderar sad WITH (/* As condições que vc utilizaria no ON*/)[/code][/quote]
opa! assim funcionou, valeu!
agora vou se acho algo parecido com criteira.