Sysdate no Hibernate [RESOLVIDO]

galera, eu preciso fazer o seguinte.

select *
from BOM_DEPT_RES_INSTANCES_EMP_V                     
where SYSDATE between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE; 

os campos EFFECTIVE_START_DATE E EFFECCTIVE_END_DATE sao campos da tabela mesmo. o SYSDATE é a data e hora atual do servidor de banco de dados Oracle.
eu estou tentando fazer assim…

List<Criterion> listCriterios = new ArrayList<Criterion>();			
		String date = new SimpleDateFormat("dd/MM/yyyy").format(new Date());			
		Criterion c3 = Restrictions.between(date, "efectiveStartDate", "efectiveEndDate");
		listCriterios.add(c3);

dá o erro falando que date nao foi encontrado no objeto que esta sendo pesquisado.

a duvida é: Como faço para dar um SYSDATE no Oracle pelo hibernate.

Acredito que no between vc não vai conseguir testar 2 campos ao mesmo tempo pelo criteria.

Então o que vc quer é achar os registros que tem data inicio < que data do sistema e data fim > que data do sistema.

da pra fazer assim:

Nesse caso vai pegar os registros que são menor igual a data do sistema e maior igual a data do sistema.

        Collection&lt;Usuarios&gt; lista = session.createCriteria(Usuarios.class)
                .add(Restrictions.le(&quot;dataInicio&quot;, new Date()))
                .add(Restrictions.ge(&quot;dataFim&quot;, new Date()))
                .list();

Nesse caso vai pegar os registros que são menores a data do sistema e maiores a data do sistema.

        Collection&lt;Usuarios&gt; lista = session.createCriteria(Usuarios.class)
                .add(Restrictions.lt(&quot;dataInicio&quot;, new Date()))
                .add(Restrictions.gt(&quot;dataFim&quot;, new Date()))
                .list();

Boa Romarcio… deu certo sim cara…

Obrigado…