2013-03-20 54 views
1

我有一个实体编码器有0-n喜欢。 我的查询包括,给一个名叫编码器中,在寻找具有共同的至少一个顺心的所有编码器,通过降与A.这里共同喜好的计数开的是什么样子至今:QueryDSL休眠:通过交点排序

query.from(coder, other) 
    .where(
      coder.firstName.toLowerCase().eq(firstName) 
      .and(coder.lastName.toLowerCase().eq(lastName)) 
      .and(other.ne(coder)) 
      .and(other.likings.any().in(coder.likings)) 
    ) 
    .orderBy(coder.likings.???); 

是有一种方法可以通过QueryDSL实现指定custon命令吗?我在ListPath找不到任何相关内容。如果是这样,我可以使用番石榴计算交集。

由于提前,

罗尔夫

回答

1

你可以尝试

.orderBy(coder.likings.size().desc()); 

如果不行尝试通过明确的聚集额外的连接和组。

+0

感谢您的回答。 我真的想要做些什么: .orderBy(intersection(coder.likings,other.likings).size()) – Rolf 2013-03-20 22:59:56

+0

我想你可以通过连接和groupBy来表达。 – 2013-03-21 07:39:01