我有一个用户表,它包含两种不同类型的用户(A和B)。 A型用户可以与B型用户建立关系(记录在关系表中)。类型A用户可以与类型B用户关系的数量记录在另一个表中的字段中。使用Hibernate根据另一个表中的记录数来提取记录
我想让Hibernate返回所有没有建立完全关系的A型用户。我有一个SQL查询,将做到这一点。我需要做什么?
编辑
我已经设法通过投掷我查询到执行Session.createSQLQuery()得到这个工作,但它似乎不可思议有SQL块在这一切之中非常棒的休眠代码。我认为,如果可能的话,应该在HSQL或Hibernate对象中使用它。
这是我试图转换为HSQL伪查询:
select userId
from (
select user_id, max_mentees, count(connection_id) num_mentees
from user_table
join mentor on mentor_id = user_id and user_status = 'ACTIVE'
left join connections on connection_mentor_id = mentor_id
and connection_status = 'ACTIVE' and connection_end > sysdate
group by user_id, max_mentees, connection_id
)
where (max_mentees > num_mentees)
group by user_id
'我想让Hibernate返回所有未建立完全关系的A型用户何时?什么时候做? – 2010-08-18 22:23:12
基本上,A用户将成为B用户的导师,A用户每次可以拥有多少“受指导者”。计数是查看有多少B(受指导者)用户分配给A(指导者)用户,以便我们可以将其与另一个表中的限制数进行比较。 – 2010-08-19 12:43:28