Duvida: DDD, Repositorios e Classes que não representam tabelas no banco

Pessoal, boa noite…

Estou com uma dúvida de design da minha aplicação:

  • possuo uma classe com atributos que são constituidos (cada um) por consultas complexas que envolvem mais de uma tabela no banco de dados. Logo, esta classe é transiente. Não há uma tabela para ela. Logo, gostaria de saber, qual o melhor “approach” a se tomar para sua utilização, há alguma “mágica” com hibernate/jpa ou eu mesmo devo controlar o Fetch dela?

Explico…

class PesquisaComplexaNegocio { public List getDadoProvidoPorQueryComplexa() { ... } }

Onde eu seto este “dadoProvidoPorQueryComplexa” ? Já me falaram para não passar uma instância da Session/EntityManager dentro desta classe, então, como faço?

Crio um repositório pra ela, que faz todos os respectivos SETS nela?

[code]RepositorioPesquisa {
public PesquisaComplexaNegocio pesquisa(Filtro filtro) {

}
}[/code]

?

Obrigado desde já.