Reputation: 3
Hi I want to execute this query
SELECT *
FROM nm_ticket
WHERE id_urgencia IN (SELECT ID_urgencia FROM nm_urgencia WHERE id_gravedad = 2);
How can I do it using Hibenate's criterias?
Upvotes: 0
Views: 292
Reputation: 692181
First of all, I deduce from your query that there should be a toOne association between Ticket and Urgencia. Your SQL query could be rewritten as
select * from nm_ticket t
inner join nm_urgencia u on t.id_urgencia = u.id_urgencia
where u.id_gravedad = 2
Second, this query is really simple, and doesn't need to be dynamically composed. Using a HQL query would be much simpler than using Criteria:
select t from Ticket t where t.urgencia.idGravedad = 2
Now if you really want to do it with criteria:
Criteria c = session.createCriteria(Ticket.class, "t");
c.createAlias("t.urgencia", "u");
c.add(Restrictions.eq("u.idGravedad", 2));
return c.list();
Next time you ask about Hibernate, include your entities, because that's what Hibernate works with: entities.
Upvotes: 1