Olá, tenho a seguinte estrutura:
abstract class Cobranca {}
PessoaCobranca extends Cobranca {
Pessoa p;
}
SetorCobranca extends Cobranca {
List<Setor>;
}
Usando o jpa ql:
select
case
when (e.class in PessoaCobranca) then p.pessoa.nome end,
case
when (e.class in SetorCobranca) then s end
from Cobranca e, PessoaCobranca p, SetorCobranca s
Tenho o nome da pessoa quando PessoaCobranca e o objeto list quando SetorCobranca.
O que gostaria de saber é: tem como eu voltar um objeto para cada SetorCobranca?
pois se eu fizer
when (e.class in SetorCobranca) then s.setor.nome end
dará erro pois isto é uma lista.
Exemplo do que preciso:
Objeto 1: nome da pessoa
Objeto 2: nome do setor
Objeto 3: nome do setor
…
Objeto n: nome do setor
Obrigado
Cara, para voce recuperar um unico resultado de sua base de dados voce tera que incluir mais alguma restricao, por exemplo:
select setor from SetorCobranca setor where setor.nome = 'algum nome';
caso contrario voce tera mais de um resultado, portanto, uma lista!
Espero ter entendido sua duvida!
Olá Vini!
O que eu queria mesmo é que voltasse n resultados, 1 para cada item da lista.
Acho que o que estou pensando em fazer é meio impossível… :shock:
Então, quando fizesse isso:
when (e.class in SetorCobranca) then s.setor.nome end
voltaria 1 registro para cada setor que a EmpresaCobranca tem…
:roll:
Obrigado de qualquer forma.
Consegui a solução!!!
select cobranca, setor
from Cobranca cobranca
left join cobranca.setores setor
Lembrando que a classe Cobranca é abstrata e quem que tem a lista de setor é a subclasse Setor.
Com o left join volta tantos resultados quantos tiverem para SetorCobranca ou PessoaCobranca.
Obrigado!!!