通过内容管理 API 更新条目时引发"Entry must have a space associated"错误



我试图在contentful中更新条目的字段,但每次都会抛出此错误:

. lang。IllegalArgumentException:条目必须有空格相关联的。在com.contentful.java.cma.AbsModule.getSpaceIdOrThrow (AbsModule.java: 87)在com.contentful.java.cma.ModuleEntries.update (ModuleEntries.java: 345)在com.contentful.java.cma.ModuleEntries异步14.美元方法(ModuleEntries.java: 700)

我正在构建客户端并提供spaceId:

@Bean
CMAClient cmaClient() {
return new CMAClient.Builder()
.setAccessToken(contentManagementToken)
.setSpaceId(spaceId)
.setEnvironmentId("master")
.build();
}

,这就是抛出错误的地方:

CMAEntry entry = new 
CMAEntry().setSystem(sys)
.setId(response.items().get(i).id())
.setField("questionText", "en-US", question.getQuestionText()));

cmaClient.entries().update(entry);

如果我像这样设置条目的空格id:

CMAEntry entry = new CMAEntry().setSystem(sys)
.setId(response.items().get(i).id())
.setSpaceId(spaceId)
.setField("questionText", "en-US", question.getQuestionText());

cmaClient.entries().update(entry);

我得到一个不同的错误信息:

FAILED ErrorBody {details = details {errors = [Error {details =[错误]属性"space"这是不允许的。, name = unknown,....

我已经把互联网翻了个底朝天来寻找解决这个问题的方法,Java的文档没有提供解决方案。

好吧,我做错了。

我在文档的某个地方读到,当更新一个条目时,您需要为该条目提供所有字段,否则缺失的字段将被删除。考虑到这一点,我尝试使用本地条目(来自本地db)构建条目,因此缺少参数。

要更新条目,您需要通过其ID检索该条目,编辑所需的字段,然后保存它。

我所要做的就是:

final CMAEntry entry =
cmaClient.entries()                                                
.fetchOne(response.items().get(i).id());
entry.setField("saved", "en-US", true);
cmaClient.entries().update(entry);

相关内容

  • 没有找到相关文章

最新更新