[HELP] Problema com Hibernate + Spring + Date

Boa tarde pessoal!
Estou com um problema aqui, tá foda de resolver.

Tenho uma chamada que faz uma consulta ao banco.
Essa consulta tá me retornando null, só que quando faço a mesma consulta substituindo os valores ela tras os resultados que preciso.
Alguém já penou com isso?
Acho que pode ser algum problema da conversao de datas, mas não to conseguindo resolver.

Segue o código.:

MAIN

package br.com.webtraffic.report.chart;

import java.util.Calendar;
import java.util.Date;

import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;

import br.com.webtraffic.wmc.dao.v2.CampaignDAO;
import br.com.webtraffic.wmc.models.CampaignReportModel;
import br.com.webtraffic.wmc.orm.Campaign;

public class ChartExample
{
	public static void main(String[] args)
	{
		//http://chart.apis.google.com/chart?cht=bvg&chd=t:40.3,100&chs=300x300&chco=ff0000|00ff00&chxt=y,r&chxl=0:1:&chbh=30,5,100&chg=0,10&chm=tR$13914.36,000000,0,0,13|tR$34516.98,000000,0,1,13&chl=Custo|Receita
		//http://chart.apis.google.com/chart?cht=p&chd=t:40.3,100&chs=250x100&chl=Custo|Receita&chdl=First|Second
		Resource resource = new FileSystemResource("/home/lgertel/WEBTraffic/WMC/web/WEB-INF/bid-data.xml");
		XmlBeanFactory factory = new XmlBeanFactory(resource);
		
		CampaignDAO campaignDAO = (CampaignDAO) factory.getBean("campaignDAO");
		
		Campaign campaign = campaignDAO.getCampaign(2L);
				
		Calendar calendar = Calendar.getInstance();
		
		calendar.set(2008, 04, 10, 00, 00, 00);
		Date startDate = calendar.getTime();
		
		calendar.set(2008, 04, 01, 23, 59, 59);
		Date endDate = calendar.getTime();
		
		CampaignReportModel reportModel = campaignDAO.getCampaignInformation(campaign, startDate, endDate);
	}
}

Aqui a implementação.:

@SuppressWarnings("unchecked")
	public CampaignReportModel getCampaignInformation(Campaign campaign, Date startDate, Date endDate)
	{ 
		System.out.println(campaign.getId());
		System.out.println("START DATE: " + startDate);
		System.out.println("END DATE: " + endDate);
		
		List<Object[]> result =
		getHibernateTemplate().findByCriteria(
				DetachedCriteria.forClass(Campaign.class, "campaign")
				.createAlias("groupAnnounce", "groupAnnounce")
				.createAlias("groupAnnounce.announceKeywords", "announceKeyword")
				.createAlias("announceKeyword.information", "information")
				.add(Expression.eq(Campaign.PROP_ID, campaign.getId()))
				.add(Restrictions.ge("information." + Information.PROP_DATE, startDate))
				.add(Restrictions.le("information." + Information.PROP_DATE, endDate))
				.setProjection(
						Projections.projectionList()
							.add(Projections.sum("information." + Information.PROP_CLICKS))
							.add(Projections.sum("information." + Information.PROP_IMPRESSION))
							.add(Projections.sum("information." + Information.PROP_PRICE_COST))
							.add(Projections.sum("information." + Information.PROP_UNIQUE_VISITORS))
							.add(Projections.sum("information." + Information.PROP_SPENT_TIME))));
		
		for (Object[] objects : result)
		{
			for (int i = 0; i < objects.length; i++)
			{
				System.out.println(objects[i]);
			}
		}
		
		CampaignReportModel reportModel = new CampaignReportModel();
		
		//reportModel.setClicks((Long) (result.get(0)[0]));
		//reportModel.setImpressions((Long) (result.get(0)[1]));
		//reportModel.setCost((Double) (result.get(0)[2]));
		
		result =
			getHibernateTemplate().findByCriteria(
					DetachedCriteria.forClass(Campaign.class, "campaign")
					.createAlias("groupAnnounce", "groupAnnounce")
					.createAlias("groupAnnounce.announceKeywords", "announceKeyword")
					.createAlias("announceKeyword.viewAux", "viewAux")

					.add(Expression.eq(Campaign.PROP_ID, campaign.getId()))
					.add(Restrictions.ge("viewAux." + ViewAux.PROP_DATE, startDate))
					.add(Restrictions.le("viewAux." + ViewAux.PROP_DATE, endDate))
					.setProjection(
							Projections.projectionList()
								.add(Projections.sum("viewAux." + ViewAux.PROP_PAGE_VIEWS))
								.add(Projections.sum("viewAux." + ViewAux.PROP_METAS))
								.add(Projections.sum("viewAux." + ViewAux.PROP_METAS_LATENTE))
								.add(Projections.sum("viewAux." + ViewAux.PROP_VALOR))
								.add(Projections.sum("viewAux." + ViewAux.PROP_VALOR_LATENTE))));
		
		for (Object[] objects2 : result)
		{
			for (int i = 0; i < objects2.length; i++)
			{
				System.out.println(objects2[i]);
			}
		}
		
		//reportModel.setPageView((Long) (result.get(0)[1]));
		//reportModel.setGoal((Long) (result.get(0)[2]));
		//reportModel.setGoalLatente((Long) (result.get(0)[3]));
		//reportModel.setReceita((Double) (result.get(0)[4]));
		//reportModel.setReceitaLatente((Double) result.get(0)[5]);
		
		return reportModel;
	}

Aqui o resultado .:
START DATE: Sat May 10 00:00:00 BRT 2008
END DATE: Thu May 01 23:59:59 BRT 2008
Hibernate:
/* criteria query / select
sum(informatio3_.inf_clicks) as y0_,
sum(informatio3_.inf_impression) as y1_,
sum(informatio3_.inf_price_cost) as y2_,
sum(informatio3_.inf_uniquevisitor) as y3_,
sum(informatio3_.inf_spenttime) as y4_
from
campaign this_
inner join
group_announce groupannou1_
on this_.cpg_id=groupannou1_.grp_anc_cpg_id
inner join
announce_keyword announceke2_
on groupannou1_.grp_anc_id=announceke2_.anc_kwd_grp_anc_id
inner join
information informatio3_
on announceke2_.anc_kwd_id=informatio3_.inf_anc_kwd_id
where
this_.cpg_id=?
and informatio3_.inf_date>=?
and informatio3_.inf_date<=?
null
null
null
null
null
Hibernate:
/
criteria query */ select
sum(viewaux3_.pageViews) as y0_,
sum(viewaux3_.metas) as y1_,
sum(viewaux3_.metaslatente) as y2_,
sum(viewaux3_.valor) as y3_,
sum(viewaux3_.valorlatente) as y4_
from
campaign this_
inner join
group_announce groupannou1_
on this_.cpg_id=groupannou1_.grp_anc_cpg_id
inner join
announce_keyword announceke2_
on groupannou1_.grp_anc_id=announceke2_.anc_kwd_grp_anc_id
inner join
view_aux viewaux3_
on announceke2_.anc_kwd_id=viewaux3_.announce_keyword_id
where
this_.cpg_id=?
and viewaux3_.data>=?
and viewaux3_.data<=?
null
null
null
null
null

e aqui a query com o resultado do banco

select
sum(informatio3_.inf_clicks) as y0_,
sum(informatio3_.inf_impression) as y1_,
sum(informatio3_.inf_price_cost) as y2_,
sum(informatio3_.inf_uniquevisitor) as y3_,
sum(informatio3_.inf_spenttime) as y4_
from
campaign this_
inner join
group_announce groupannou1_
on this_.cpg_id=groupannou1_.grp_anc_cpg_id
inner join
announce_keyword announceke2_
on groupannou1_.grp_anc_id=announceke2_.anc_kwd_grp_anc_id
inner join
information informatio3_
on announceke2_.anc_kwd_id=informatio3_.inf_anc_kwd_id
where
this_.cpg_id=2
and informatio3_.inf_date >= ‘2008-04-10’
and informatio3_.inf_date <= ‘2008-04-10’

result.:
y0_ y1_ y2_ y3_ y4_


71 2557 23.04 78 12634

Agradeço de antemão.
Abraços,
Lucas