0
您好我想执行这个查询Hibernate的独立式子查询
SELECT *
FROM nm_ticket
WHERE id_urgencia IN (SELECT ID_urgencia FROM nm_urgencia WHERE id_gravedad = 2);
我怎样才能做到这一点使用Hibenate的审核规定?
您好我想执行这个查询Hibernate的独立式子查询
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
现在,如果你真的想用标准来做到这一点:
你问关于Hibernate,包括你的实体Criteria c = session.createCriteria(Ticket.class, "t");
c.createAlias("t.urgencia", "u");
c.add(Restrictions.eq("u.idGravedad", 2));
return c.list();
下一次,因为这是Hibernate使用什么:实体。
谢谢你,完美的工作! – Diego 2012-01-17 19:07:24