在游戏实体中,我有:private Set<GameGenre> genres = new HashSet<>();我编写了自定义查询,将按流派 ID 过滤游戏。当我在查询中硬编码流派 id 时,它可以工作:@Query("select new com.twognation.hub.dto.GameDTO(game.id, game.name, game.active, game.description, game.coverImage, game.logo, game.backgroundImage, game.featuredImage, game.characterImage, game.smallCoverImage, count(tournament.id) as tournamentCount) from Game game left join Tournament tournament on game.id=tournament.game inner join game.genres genres where lower(game.name) like CONCAT('%', :name, '%') and genres IN (1301) group by game.id order by tournamentCount desc, game.id")但是当我尝试传递 id 列表时:@Query("select new com.twognation.hub.dto.GameDTO(game.id, game.name, game.active, game.description, game.coverImage, game.logo, game.backgroundImage, game.featuredImage, game.characterImage, game.smallCoverImage, count(tournament.id) as tournamentCount) from Game game left join Tournament tournament on game.id=tournament.game inner join game.genres genres where lower(game.name) like CONCAT('%', :name, '%') and genres IN (:genres) group by game.id order by tournamentCount desc, game.id") Page<GameDTO> findAllOrderByTournamentCountAndGenreFilter(@Param("name") String name, @Param("genres") String genres, Pageable page);游戏实体:@Entity@Table(name = "game")@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)@Document(indexName = "game")public class Game implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator") @SequenceGenerator(name = "sequenceGenerator") private Long id; @Column(name = "name") private String name; @Column(name = "active") private Boolean active; @Lob @Column(name = "description") private String description; @Column(name = "cover_image") private String coverImage; @Column(name = "logo") private String logo; @Column(name = "background_image") private String backgroundImage;
添加回答
举报
0/150
提交
取消