我写了两个select语句,第一个产生了一个id列表,第二个我希望在idList中有id的视频会被选中。我打印了 idList 并确保它是空的,但下面的 select 语句返回了表中的所有视频。
SelectStatementProvider selectStatementProvider = selectDistinct(
VideoHitDynamicSqlSupport.videoId
)
.from(VideoHitDynamicSqlSupport.videoHit)
.where(VideoHitDynamicSqlSupport.hitterId, isEqualTo(uid))
.build()
.render(RenderingStrategies.MYBATIS3);
List<VideoHit> videoHits = this.videoHitMapper.selectMany(selectStatementProvider);
ArrayList<Integer> idList = new ArrayList<>();
videoHits.forEach(e -> idList.add(e.getVideoId()));
List<Video> videos = this.videoMapper.select(c -> c
.where(VideoDynamicSqlSupport.videoId, isIn(idList))
);
return videos;