Olá, estou tentando executar a seguinte query em hql

@Modifying  
@Transactional  
@Query("DELETE FROM Pacote pa WHERE pa.prospectos IN(SELECT pc.prospecto FROM ProspectoCampo pc WHERE pc.valor IN (SELECT tb.telefone FROM TelefoneBloqueado tb))")  
public void deletarBloqueadosEmPacote();


Esta mesma query executada em sql ficaria assim (Executou Perfeitamente)
delete from com_pacote_prospecto where id_prospecto in   
(select cp.id_prospecto from com_prospecto_campo cp where cp.valor in   
(select tb.telefone from com_telefone_bloqueado tb))

Eu tenho uma tabela de Pacote que seria um conjunto de "pessoas", essas "pessoas" possuem atributos(como telefone), e eu quero deletar do conjunto de pacotes todas as pessoas que possuem telefones que estão presentes em uma terceira tabela.
Ao executar essa query no sistema ocorre o seguinte erro
ERRO: erro de sintaxe em ou próximo a "cross"

e a query que está sendo executada tem o inicio desse modo:
delete from com_pacote cross join com_pacote_prospecto prospecto2_ where . in (...subquery...);

Se puderem me dar ajuda de como alterar essa query ou alguma outra sugestão...

Agradeço desde já!