Subquery no hibernate

Bom dia,

Como faço para fazer uma subquery com o hibernate?

Query

select * from brand  
   where not exists(select 1  from history h 
                                  where h.iduser = 1 
                                      and h.idbrand = brand.idbrand 
                                      and DATE_ADD(h.datecreate, INTERVAL 1 DAY) >= now())

tentei por directamente no createQuery, (session.createQuery("from " + table + " " + whereClause ) mas já percebi que não dá.
Já tive a pesquisar o Criteria mas mesmo assim não consegui perceber como fazer.

Será que alguém pode dar uma mãozinha?

Cumprimentos,

Pesquisa sobre Criteria Subqueries.exists.

Aqui tem um exemplo pronto para se basear: http://www.cereslogic.com/pages/2008/09/22/hibernate-criteria-subqueries-exists

Boa noite,

Obrigado javaflex, já tinha conseguido resolver :slight_smile:

Criteria criteria = session.createCriteria(Brand.class, "b");

        Date dt = new Date();
        Calendar c = Calendar.getInstance();
        c.setTime(dt);
        c.add(Calendar.DATE, -1);
        dt = c.getTime();

        criteria.add(Subqueries.notExists(
                DetachedCriteria.forClass(History.class, "h")
                .setProjection(Projections.id())
                .add(Restrictions.eqProperty("h.brand.idbrand", "b.idbrand"))
                .add(Restrictions.eq("h.user.iduser", 1))
                .add(Restrictions.gt("h.datecreated", dt))
        )).setMaxResults(limit)
                .add(Restrictions.sqlRestriction("1=1 order by rand()"));;

Cumprimentos