【发布时间】:2016-04-06 16:24:22
【问题描述】:
我有以下代码:
@Query("SELECT t FROM Track t JOIN t.artists a WHERE a IN (:artists) GROUP BY t HAVING COUNT(t) = 2")
public Track findByArtistIgnoreCase(@Param("artists") Set<Artist> artists);
它适用于 COUNT 的固定值(如 2),但我需要用 Artist.size() 替换它,因此它只会返回包含集合中所有艺术家的轨道(轨道和艺术家有@ManyToMany 关系)。
我可以让它工作的唯一方法是传递另一个 @Param 这将是 Set 的大小,但考虑到我已经在传递对象本身,这似乎适得其反。
有没有办法在 Query 中获取 Set 参数的大小,或者直接在 SQL 中获取(计算 in() 项)?
【问题讨论】:
标签: java spring jpa spring-data