Tipos de dados e campos

Como forçar outer join nos casos de 2o nivel obrigatório sobre 1o nível opcional?

ADSRT.FAQ-3966
Existe um BUG no runtime do Telescope que cria um INNER JOIN quando deveria ser OUTER JOIN.

Veja o exemplo:
Digamos que exista uma entidade Pedidos que tem um relacionamento opcional para REPRESENTES. Porém, na entidade Representante tem um relacionamento obrigatório para CIDADES.
Se formos fazer uma consulta em PEDIDOS > REPRESENTANTES > CIDADES, o Telescope irá assumir LEFT OUTER JOIN entre PEDIDOS e REPRESENTANTES mas INNER JOIN entre REPRESENTANTES e CIDADES. Consequentemente, registros de pedidos que não tenham representantes não serão retornados.

Nestes casos, enquanto o Telescope não for corrigido, teremos que forçar o OUTER JOIN do segundo relacionamento da seguinte forma:

Pedidos p = new Pedidos();
Representantes r = p.joinRepresentante();
Cidades c = r.joinCidade();
c.getJoinedBy().setJoinType(Join.LEFT_OUTER_JOIN);

Isso irá trocar o tipo de join da relação feita na entidade Cidades, passando de INNER para LEFT OUTER.