Duvida HQL e subqueries

Ola

Eu possuo uma Entidade Associado esta entidade possue uma coleção de pagamentos, eu preciso pesquisar os pagamentos de um associado entre duas datas.

Então eu tenho um metodo que recebe um id de associado, e as datas inicial e final, mas a minha query não esta se comportando como o esperado:

select a.pagamentos from Associado a where a in(select p from Pagamento p where p.dataPagamento between :dataInicial and :datafinal) and a.idassociado=:idAssociado

Alguem saberia me dizer o que esta errado na query?

Valeu!