Привет Я хочу, чтобы выполнить этот запросHibernate Частный Subquery
SELECT *
FROM nm_ticket
WHERE id_urgencia IN (SELECT ID_urgencia FROM nm_urgencia WHERE id_gravedad = 2);
Как я могу сделать это с помощью Hibenate в из условий?
Привет Я хочу, чтобы выполнить этот запросHibernate Частный Subquery
SELECT *
FROM nm_ticket
WHERE id_urgencia IN (SELECT ID_urgencia FROM nm_urgencia WHERE id_gravedad = 2);
Как я могу сделать это с помощью Hibenate в из условий?
Прежде всего, исходя из вашего запроса, необходимо, чтобы между Ticket и Urgencia существовала ассоциация toOne. Ваш SQL-запрос можно переписать в виде
select * from nm_ticket t
inner join nm_urgencia u on t.id_urgencia = u.id_urgencia
where u.id_gravedad = 2
Во-вторых, этот запрос действительно просто, и не нужно быть динамически составлены. С помощью запроса HQL было бы гораздо проще, чем с использованием критериев:
select t from Ticket t where t.urgencia.idGravedad = 2
Теперь, если вы действительно хотите сделать это с критериями:
Criteria c = session.createCriteria(Ticket.class, "t");
c.createAlias("t.urgencia", "u");
c.add(Restrictions.eq("u.idGravedad", 2));
return c.list();
В следующий раз вы спрашиваете о Hibernate, включают в свои объекты, потому что с которым работает Hibernate: сущности.
Спасибо, что сработало отлично! – Diego