JPA-Query para filtar registros filhos

Boa tarde, a todos.
Estou com o seguinte problema tenho um relacionamento Indicador(1)->Valores(N).
Preciso filtrar um campo da tabela filho, mas todas a vez que executo a query, ela retorna todos os valores da tabela filho sem aplicar o filtro.
Alguém sabe me dizer o que estou fazendo de errado?
Estou usando TopLink
Os códigos estão assim:

//************************************************************************\\
public class KpiIndicadorPU implements Serializable {
...

	@OneToMany( mappedBy = "indicador",cascade = CascadeType.ALL)
	private Collection<KpiValorPU> valores;
...
}


//************************************************************************\\
public class KpiValorPU implements Serializable {
...
	@ManyToOne
	@JoinColumn(name = "ind_int_id", referencedColumnName = "ind_int_id")
	private KpiIndicadorPU indicador;
...
}


//*******************Classe para teste*****************************************************\\
public class JpaTeste extends KpiDataResponse {
EntityManager em = getEmf().createEntityManager();
		EntityManager em = getEmf().createEntityManager();
		Query q = em.createQuery("SELECT c FROM KpiIndicadorPU c" +
				"  LEFT JOIN c.valores val where c.indIntId = 1 and val.indIntId = 1");

		KpiIndicadorPU pu = (KpiIndicadorPU) q.getSingleResult();

		Collection<KpiValorPU> valores = pu.getValores();
		if (valores.size() == 1) {
			System.out.println("VALOR CORRETO");
		} else {
			System.out.println("VALOR ERRADO, DEVERIA TER RETORNADO UM ÚNICO VALOR NA COLLECTION");
		}
}

Cara ta meio ruim de ler teue código, coloca ele na tag Code

mas pelo que eu entendi tua query deveria ser algo ± assim:

Fala ai pessoal consegui uma query que até me atende, mas fiquei na duvida.

Query q = em.createQuery("SELECT ind, val FROM KpiIndicadorPU ind JOIN ind.valores val where ind.indIntId = 1 and val.valIntMes = 2");

		Vector vctInd = ( Vector )q.getResultList();
		for(int index = 0; index < vctInd.size();index++){
			Object[] oInd = (Object[])vctInd.get(index) ;
			KpiIndicadorPU ind =  (KpiIndicadorPU)oInd[0];
			KpiValorPU val  =  (KpiValorPU)oInd[1];
			System.out.println("Mes:" + val.getValIntMes());
		}

Como vocês podem notar esta query retorna duas lista.
A 1ª de indicadores tem o indicador 1 que pedi e dentro dela tem um outra lista contendo todos os valores para o indicador 1 que é o relacionamento.
Já a 2ª lista tem só o valores que o indicador é igual ao mês 2 é isto mesmo que deveria fazer?
Por exemplo se eu não quiser que traga os campos de valores na 1ª lista o que devo saber?
Abraços a todos e continuo pesquisando aqui.