我想编写一个查询,按照给定的类型集合为我的fileRepository选择所有行(有3种类型为" 1"," 2"和" 3&# 34;),如果没有从前端给出该参数,那么它应该返回所有行。
我正在使用带有@RepositoryRestResource注释的Repository来实现这一点。 它适用于单一类型查询(不是集合)
@Query("SELECT t FROM #{#entityName} t WHERE :fileType IS NULL OR t.fileType = :fileType")
Page<MyFile> findByFileType(@Param("fileType") String fileType, @Param("page") Pageable pageable);
当我不提出任何论据时,它会返回所有实体,例如:&#34; http://localhost:8080/api/myFiles/search/findByFileType&#34;
并返回所有类型为&#34; 1&#34;的文件当我用1参数搜索时: &#34; http://localhost:8080/api/myFiles/search/findByFileType?fileType=1&#34;
但是当我尝试从类型集合中编写查询并且我尝试了这个
时会出现问题@Query("SELECT t FROM #{#entityName} t WHERE :fileTypes IS NULL OR t.fileType IN :fileTypes")
Page<MyFile> findByFileType(@Param("fileTypes") Collection<String> fileTypes, @Param("page") Pageable pageable);
它仍适用于我上面给出的示例localhost链接,但是多个参数抛出&#34; java.sql.SQLSyntaxErrorException:ORA-00920:无效的关系运算符&#34;此链接出错: &#34; http://localhost:8080/api/myFiles/search/findByFileType?fileType=1,2&#34;
编辑:我使用Oracle11g作为数据库。