首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Contentful CMA从Contentful获取CMAEntry集合

如何使用Contentful CMA从Contentful获取CMAEntry集合
EN

Stack Overflow用户
提问于 2020-09-28 23:59:01
回答 1查看 35关注 0票数 0

我使用内容CMA。我有List<String> entriesIds。我想通过它们的I从Contentful空间获取条目,这样我就可以编辑它们并将我的更改发布到Contentful。下面的代码运行得很好,但我只想获取一个请求的条目。

代码语言:javascript
复制
@Setter
@Getter
public class ProductIsAvailableDto {
    private String productId;
    private Boolean isAvailable;
}

private final CMAClient contentfulClientForUpdate;

for (ProductIsAvailableDto product : productIsAvailableDtoList) {
    CMAEntry cmaEntry = contentfulClientForUpdate.entries().fetchOne(product.getProductId());
    cmaEntry.setField(ContentfulFieldsConstants.IS_AVAILABLE, DEFAULT_LOCALE, product.getIsAvailable());
    cmaEntry = contentfulClientForUpdate.entries().update(cmaEntry);
            contentfulClientForUpdate.entries().publish(cmaEntry);
}

我面对的方法如下。

代码语言:javascript
复制
com.contentful.java.cma.ModuleEntries#fetchAll(java.util.Map<java.lang.String,java.lang.String>) 

但是我真的不能理解如何指定查询参数。我试着像下面这样做smth。

代码语言:javascript
复制
HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("ids", new Gson().toJson(productIsAvailableDtoList.stream()
                .map(ProductIsAvailableDto::getProductId)
                .collect(Collectors.toList())
        ));
        CMAArray<CMAEntry> cmaArray = contentfulClientForUpdate.entries().fetchAll(hashMap);

但它不起作用。在官方文档中,我只找到了按id获取单个条目的机会,但我需要按id获取条目列表。如果有人能帮我那就太好了。

EN

回答 1

Stack Overflow用户

发布于 2020-09-29 00:32:34

代码语言:javascript
复制
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put(
  "sys.id[in]", 
  productIsAvailableDtoList.stream()
    .map(ProductIsAvailableDto::getProductId)
    .collect(Collectors.joining(",")
));
CMAArray<CMAEntry> cmaArray = contentfulClientForUpdate.entries().fetchAll(hashMap);

它起作用了),谢谢你的关注。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64105625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档