Abstract Class, Object e List

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!!!