Spring数据mongodb存储库findAll字段排除

Ser*_*mir 9 java spring repository mongodb spring-data-mongodb

我对spring数据mongodb存储库有一个奇怪的问题..我想从我的findAll请求中排除一个字段.我怎样才能做到这一点?

这非常有效:

@Query(fields = "{'objectContentAsJson':0}")
Page<ObjectHistory> findByObjectIdAndServiceIgnoreCase( String objectId, String service, Pageable pageable );
Run Code Online (Sandbox Code Playgroud)

但没有机会findAll:

@Query(fields = "{'objectContentAsJson':0}")
Page<ObjectHistory> findAll( Pageable pageable );
Run Code Online (Sandbox Code Playgroud)

抛出:

引起:org.springframework.data.mapping.PropertyReferenceException:找不到类型为ObjectHistory的属性findAll!org.springframework.data.mapping.PropertyPath.(PropertyPath.java:75)位于org.springframework.data.mapping.PropertyPath.create的org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:327) PropertyPath.java:307)org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:270)org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:241)atg.springframework.data .repository.query.parser.Part.(Part.java:76)

Ali*_*ani 5

添加一个空的过滤条件将为您解决问题:

@Query(value = "{}", fields = "{'objectContentAsJson':0}")
Page<ObjectHistory> findAll(Pageable pageable);
Run Code Online (Sandbox Code Playgroud)

显然,当您不指定value参数来过滤结果时,Spring Data 会尝试从方法名称派生查询,但不知何故,无法识别 的特殊含义findAll