为了账号安全,请及时绑定邮箱和手机立即绑定

Java Hibernate java.lang.IllegalArgumentException:

Java Hibernate java.lang.IllegalArgumentException:

慕盖茨4494581 2021-09-03 10:59:47
在游戏实体中,我有: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;
查看完整描述

2 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

您可能需要传递 GameGenre 类型的对象而不是字符串。也许也是 GameGenre 对象的集合。


查看完整回答
反对 回复 2021-09-03
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信