1
我目前正在创建一个功能,如'其他喜欢此功能的人也喜欢'。HQL:如何在使用where-in-subselect构造获取完整行时维护排序顺序?
有问题的HQL语句返回一个产品ID列表(按照两个产品之间共享'喜欢'的数量排序)。但结果并不明显 - 剥离到非常基础,查询看起来像这样。 (请注意:这不是原来的查询,而不是一个简单的例子给你的我在做什么的想法)
select prd2.id from UserLike ul2
join ul2.product prd2
where ul.userId in (
select ul.userId from UserLike ul
join ul.product prd
where prd.id=:productId
)
group by prd2.id
order by count(prd2.id) desc
从那里开始,有以检索每个完整的行/实体的普通模式产品?
在SQL中,我将使用上面的查询作为FROM中的子查询并返回到产品表。
由于HQL不内,我不认为还有另一种方式,而不是包裹
from product p where p.id in (SUBSELECT_AS_ABOVE)
但进入分拣支持子。 :(
也许这听起来有点不可思议,但我认为这是一个常见的情况 - 那么,有没有这方面的任何共同的解决方法
非常感谢提前和问候, 彼得
感谢您的回复。如果我错了,请纠正我,但不是Expression.in与上面声明中的p.id(...)中的位置相同,即丢弃ID的顺序? – PeterP 2011-02-09 09:11:10