Supondo que eu tenha duas tabelas Tab1 e Tab2 com os seguintes dados:
Tab1:
************
| id | nome |
-----------------------
| 1 | João |
| 2 | Maria |
| 3 | José |
| 4 | Juca |
**************Tab2:
****************************
| id | Endereço | status |
-----------------------------
| 1 | Rua do João | null |
| 2 | Rua da Maria | Ativo |
| 3 | Rua do José | Inativo |
*****************************Agora, considere as seguintes queries:
Query 1:
SELECT t1.nome, t2.endereco
FROM t1
LEFT JOIN t2
ON t2.codigo = t1.codigo AND t2.status = "Ativo"Query 2:
SELECT t1.nome, t2.endereco
FROM t1
LEFT JOIN t2
ON t2.codigo = t1.codigo
WHERE t2.status ="Ativo"Usando o Banco Oracle como base, a query 1 vai me dar o seguinte retorno:
**********************
| nome | Endereco |
------------------------
| João | null |
| Maria | Rua da Maria |
| José | null |
| Juca | null |
************************A query 2 vai me dar o seguinte retorno:
***********************
| nome | Endereco |
------------------------
| Maria | Rua da Maria |
************************A pergunta é, como fazer no JPQL uma consulta com o mesmo efeito da query 1 ?