Hql com date

o usuario digita o mes e ano. vou verificar se existe registro naquele mes…
fiz asim e nao funcionou.

Calendar cal = Calendar.getInstance();
cal.set(Integer.parseInt(ano),Integer.parseInt(mes),01);
tb.setEveDtInicio(cal);
// o hql...
String eve = "from TbEventos where eve_dt_inicio >"+ tb.getEveDtInicio() ;

mas nao funcionou… o banco e oracle e o campo é calendar…

o erro…

at java.lang.Thread.run(Thread.java:595)
2006-08-01 10:33:49,421 ERROR [localhost].[/IBICT2].[action]  -> Servlet.service() for servlet action threw exception
org.hibernate.QueryException: Expected positional parameter count: 1, actual parameters: [] [from TbEventos where eve_dt_inicio >java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Sao_Paulo",offset=-10800000,dstSavings=3600000,useDaylight=true,transitions=129,lastRule=java.util.SimpleTimeZone[id=America/Sao_Paulo,offset=-10800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=9,startDay=15,startDayOfWeek=1,startTime=0,startTimeMode=0,endMode=3,endMonth=1,endDay=15,endDayOfWeek=1,endTime=0,endTimeMode=0]],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=1,YEAR=2006,MONTH=10,WEEK_OF_YEAR=32,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=213,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=33,SECOND=44,MILLISECOND=281,ZONE_OFFSET=-10800000,DST_OFFSET=0]]
	at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:141)
	at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:102)
	at org.hibernate.impl.QueryImpl.list(QueryImpl.java:70)

Sugiro que se use query com parâmetros sempre ao invés de concatenar a query. No caso de comparação de datas, esse caso, reforço a sugestão para evitar ter que lidar com as rotinas de conversão de data de cada banco (TO_DATE, TO_CHAR, etc.).