Duvida em busca por Datas

Ola pessoal, estou desenvolvendo um sistemas, e nele ha um modulo onde contem informações de vendas.
Estou executando a seguinte query:

SELECT CM_POLO.DS_POLO,
SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, ‘3’, CM_ITEM.QTDE, 0 ) ) UNIDADE_PERF,
SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, ‘3’, 0, CM_ITEM.QTDE ) ) UNIDADE_MED,
SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, ‘3’, CM_ITEM.VL_LIQUIDO_TOTAL, 0 ) ) VALOR_PERF,
SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, ‘3’, 0, CM_ITEM.VL_LIQUIDO_TOTAL ) ) VALOR_MED
FROM CM_POLO,
ES_PRODUTO_FARMACEUTICO,
CM_VENDEDOR,
CM_ITEM,
CM_MOVIMENTO
WHERE ES_PRODUTO_FARMACEUTICO.ID_PRODUTO = CM_ITEM.ID_PRODUTO
AND CM_POLO.ID_POLO = CM_VENDEDOR.ID_POLO
AND CM_VENDEDOR.ID_VENDEDOR = CM_MOVIMENTO.ID_VENDEDOR
AND CM_ITEM.ID_MOVIMENTO = CM_MOVIMENTO.ID_MOVIMENTO
AND CM_MOVIMENTO.DM_CANCELAMENTO <> ‘S’
AND CM_MOVIMENTO.ID_TIPO_NOTA IN ( 1, 10, 11 )
AND CM_MOVIMENTO.DT_MOVIMENTO BETWEEN ‘01/01/2008’
AND ‘01/03/2008’

GROUP BY CM_POLO.DS_POLO

A duvida é preciso criar uma classe persistente para cada from???
No momento só criei uma class Item.java, que é atabel CM_ITEM.
Como vou passar a dtInicial e a dtFinal que o usuario digitou?

Esse é meu DAO:

package br.com.fitsistemas.dao;

import java.util.List;

import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.transform.Transformers;

import br.com.fitsistemas.hibernate.HibernateUtil;
import br.com.fitsistemas.persistence.Item;

public class IGDao {

public static List<Item> ListaInfo() {

	System.out.println("Abrindo sessao para INFORMAÇÔES GERENCIAIS");
	Session s = HibernateUtil.getSession();
	System.out.println("Sessão IG iniciada com sucesso!!!");

	System.out.println("Executando query...");
	String sql = "SELECT    DISTINCT "
			+ "             CM_POLO.DS_POLO, "
			+ "             SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, '3', CM_ITEM.QTDE, 0 ) ) UNIDADE_PERF, "
			+ "             SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, '3', 0, CM_ITEM.QTDE ) ) UNIDADE_MED, "
			+ "             SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, '3', CM_ITEM.VL_LIQUIDO_TOTAL, 0 ) ) VALOR_PERF, "
			+ "             SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, '3', 0, CM_ITEM.VL_LIQUIDO_TOTAL ) ) VALOR_MED "
			+ "   FROM      CM_POLO, "
			+ "             ES_PRODUTO_FARMACEUTICO, "
			+ "             CM_VENDEDOR, "
			+ "             CM_ITEM, "
			+ "             CM_MOVIMENTO "
			+ "   WHERE     ES_PRODUTO_FARMACEUTICO.ID_PRODUTO  = CM_ITEM.ID_PRODUTO "
			+ "   AND       CM_POLO.ID_POLO                     = CM_VENDEDOR.ID_POLO "
			+ "   AND       CM_VENDEDOR.ID_VENDEDOR             = CM_MOVIMENTO.ID_VENDEDOR "
			+ "   AND       CM_ITEM.ID_MOVIMENTO                = CM_MOVIMENTO.ID_MOVIMENTO "
			+ "   AND       CM_MOVIMENTO.DM_CANCELAMENTO       <> 'S' "
			+ "   AND       CM_MOVIMENTO.ID_TIPO_NOTA           IN ( 1, 10, 11 ) "
			+ "   AND       CM_MOVIMENTO.DT_MOVIMENTO           BETWEEN   TO_DATE('10/02/2008', 'dd/mm/yyyy') "
			+ "                                                 AND       TO_DATE('12/03/2008', 'dd/mm/yyyy') "
			+ "   GROUP BY  CM_POLO.DS_POLO";

	SQLQuery qryIG = s.createSQLQuery(sql);
	// qryIG.setParameter("dtInicial", string);
	// qryIG.setParameter("dtFinal", string);

	qryIG.setResultTransformer(Transformers.aliasToBean(Item.class));
	
	return qryIG.list();
}

}

** estou usando Hibernate e JSF

desde ja agradeço pessoal