[JPAQL] Join de collection dentro de objeto não mapeado

Olá:

Eu tenho a seguinte classe:

public class PropriedadeVO {

    private Long id;
    private String nome;
    private String cnpj;
    private String nomeMunicipio;
    private String codigoUf;

    private String status;

    private Date dataAlteracao;

    private String nomeUsuarioAtualizacao;

    private String cpfUsuarioAtualizacao;

    private Collection<PessoaVO> pessoasProprietarios;

    public PropriedadeVO(Long id, String nome, String cnpj, String nomeMunicipio, String codigoUf, String status,
            Date dataAlteracao, String nomeUsuarioAtualizacao, String cpfUsuarioAtualizacao) {
            // Preenche os campos
    }
    
    // Getter, Setter e outros métodos
    
}

Eu tenho a seguinte query para preencher os valores de PropriedadeVO:

SELECT new br.gov.sp.prodesp.cda.gedave.base.vo.PropriedadeVO(
    p.id, p.nome, pjProp.cnpj, municipio.nome, uf.codigo, status.dominio, p.dataAtualizacao, pfUsuario.nome, pfUsuario.cpf)
FROM PropriedadeORM p 
    LEFT JOIN p.pessoaJuridica pjProp 
    JOIN p.enderecoPropriedade endereco 
    JOIN endereco.municipio municipio 
    JOIN municipio.uf uf 
    JOIN p.status status 
    LEFT JOIN p.usuarioAtualizacao usuario 
    LEFT JOIN usuario.pessoaFisica pfUsuario 
    LEFT JOIN usuario.pessoaFisica pfUsuario 
ORDER BY p.nome;

E para cada PropriedadeVO preciso realiza a seguinte query para preencher a collecion pessoasProprietarios:

SELECT new br.gov.sp.prodesp.cda.gedave.pessoa.vo.PessoaVO(pf.id, pf.tipoPessoa, pf.nome, pf.cpf)
FROM PessoaFisicaORM pf 
WHERE pf IN (
    SELECT pp.pessoaProprietario 
    FROM ProprietarioORM pp 
    WHERE pp.propriedade.id = :idPropriedade 
        AND pp.status.codigo <> :codStatusCancelado 
        AND pp.pessoaProprietario.tipoPessoa = :tipoPessoa
        )
        AND pf.status.codigo <> :codStatusCancelado
ORDER BY pf.nome

E com isso a produtividade vai para lixo.
Portanto a minha dúvida é se é possível (e como) fazer algum tipo de Join para trazer o itens de pessoasProprietarios junto na query principal.
Uma coisa em que pensei agora (e provavelmente não é possível) é embutir a segunda query dentro do construtor da primeira. Algo como:

SELECT new PropriedadeVO(p.id, p.nome, ..., pfUsuario.cpf, 
        (SELECT new PessoaVO(pf.id, pf.tipoPessoa, pf.nome, pf.cpf) -- O resultado da query para pessoasProprietarios entra como argumento do construtor.
         FROM PessoaFisicaORM pf 
         WHERE pf IN (
            SELECT pp.pessoaProprietario 
            FROM ProprietarioORM pp 
            WHERE pp.propriedade.id = :idPropriedade 
                AND pp.status.codigo <> :codStatusCancelado 
                AND pp.pessoaProprietario.tipoPessoa = :tipoPessoa
            )
            AND pf.status.codigo <> :codStatusCancelado
        )
    )
FROM PropriedadeORM p 
    LEFT JOIN p.pessoaJuridica pjProp 
    ...

Será que isso funcionaria? Será que não existe algum tipo de anotação JPA que poderia fazer esse mapeamento por mim?

Grato,