Hibernate Criteria realizando busca de lista durante o mes

Estou precisando de um método para incluir no meu Dao que

busque os registro entre uma data

esse é meu método dao


	public List<NF> listarNf(Cli cliente,int mes,int ano){
		 session = HibernateUtil.getSessionFactory().openSession();
		
		 try {
				Criteria cri = session.createCriteria(NF.class);
						 cri.add(Restrictions.eq("codcliente", cliente.getCod()));
						 
						 //cri.add(Restrictions.between("dataemissao", data baixa , data alta ));
						 
						 return cri.list();
			} finally {
			session.close();
			}
	}

Minha duvida é como incluir na data baixa e alta o mês e o ano, e se o Mysql consegue interpretar ou o proprio java
o ultimo dia do mês. Na minha base de dados a data é do tipo date e “yyyy-MM-dd”

Agradeço desde ja.

Talvez isto o ajude.
Lembrando que esta solução é feita com a classe Calendar.
Para transformar Calendar em Date:

Calendar cal = Calendar.getInstance();//crio uma nova data calendar, pegando a data atual
java.util.Date dataDate = new java.util.Date(cal.getTimeInMillis());//Criei um objeto Date a partir de um objeto Calendar

Vlws pela dica e consegui resolver,

criei 2 instancia da Classe calendar e utilizei o método set
que passa 3 inteiros, uma com o dia inicial e outra com o dia final do mes


 calendar.set(ano, mes-1,1,0,0,0);

 calendar2.set(ano,mes-1,calendar.getActualMaximum(calendar.DAY_OF_MONTH),0,0,0);

depois utilizei o Date do sql para realizar a busca e funcionou


Criteria cri = session.createCriteria(Nf.class);
	    cri.add(Restrictions.eq("codcliente",codcliente));
	    cri.add(Restrictions.between("dataemissao", new java.sql.Date(calendar.getTimeInMillis()),	 new java.sql.Date(calendar2.getTimeInMillis())));
						
            return cri.list();

Muito obrigado o link q você me mandou ajudou muito.

Opa, sem problemas.