Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据mongodb存储库findAll字段排除_Java_Spring_Mongodb_Repository_Spring Data Mongodb - Fatal编程技术网

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

Java Spring数据mongodb存储库findAll字段排除,java,spring,mongodb,repository,spring-data-mongodb,Java,Spring,Mongodb,Repository,Spring Data Mongodb,我对spring data mongodb存储库有一个奇怪的问题。。我想从我的findAll请求中排除一个字段。我怎样才能做到这一点 这非常有效: @Query(fields = "{'objectContentAsJson':0}") Page<ObjectHistory> findByObjectIdAndServiceIgnoreCase( String objectId, String service, Pageable pageable ); 这引发了: 原因: org.

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

这非常有效:

@Query(fields = "{'objectContentAsJson':0}")
Page<ObjectHistory> findByObjectIdAndServiceIgnoreCase( String objectId, String service, Pageable pageable );
这引发了:

原因: org.springframework.data.mapping.PropertyReferenceException:否 找到类型ObjectHistory的属性findAll!在 org.springframework.data.mapping.PropertyPath.(PropertyPath.java:75) 在 org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:327) 在 org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:307) 在 org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:270) 在 org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:241) 在 org.springframework.data.repository.query.parser.Part.(Part.java:76)


添加一个空的筛选条件将为您带来以下好处:

@Query(value = "{}", fields = "{'objectContentAsJson':0}")
Page<ObjectHistory> findAll(Pageable pageable);
@Query(value=“{}”,fields=“{'objectContentAsJson':0}”)
页面findAll(可分页可分页);

显然,当您没有指定
参数来过滤结果时,Spring Data试图从方法名称派生查询,但不知何故,它无法识别
findAll
的特殊含义,因为您没有为@query注释提供字段,Spring将尝试将方法名findAll转换为不遵守Spring的查询创建规范的查询。 请看一下规格

这应该适合您:

@Query(value = "{}", fields = "{'objectContentAsJson':0}")
Page<ObjectHistory> findAll(Pageable pageable);
@Query(value=“{}”,fields=“{'objectContentAsJson':0}”)
页面findAll(可分页可分页);

这是一个有效的想法,但它是
MongoDB
而不是
JPA
,因此您不能使用
JPQL
。实际上,您可以,Spring将转换为底层数据存储。请参阅Spring Data Mongo官方文档。本文档的第一部分是一般性的,但为了演示而使用了
JPA
特定示例。之后的一切都是为了Mongoi如果你添加一个
JPQL
作为值,你会得到一个
JSONParseException
@AliDehghani似乎你是对的,我会编辑我的帖子!!谢谢你的澄清:)但我不明白,它在另一个功能上和我的一样,谢谢你的帮助!在另一种情况下,查询可以从方法名派生。
@Query(value = "{}", fields = "{'objectContentAsJson':0}")
Page<ObjectHistory> findAll(Pageable pageable);