您好我想执行此查询
SELECT *
FROM nm_ticket
WHERE id_urgencia IN (SELECT ID_urgencia FROM nm_urgencia WHERE id_gravedad = 2);
如何使用Hibenate的标准来做到这一点?
答案 0 :(得分:1)
首先,我从您的查询中推断出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查询比使用Criteria简单得多:
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使用的:实体。