我要使用终结点API将对象数组或列表发送到应用程序引擎

@ApiMethod(name = "insertGroupMembers")
public List<GroupMembers> insertGroupMembers(Collection<GroupMembers> members) {
    EntityManager mgr = getEntityManager();
    List<GroupMembers> listMembers = new ArrayList<>();
    try {
        for (GroupMembers groupMember : members) {
            mgr.persist(groupMember);
            listMembers.add(groupMember);
        }

    } finally {
        mgr.close();

    return listMembers;

}

但它显示了在生成api库时的错误如下:
说明资源路径位置类型
为云终结点类生成API元数据:COM.GoGoLe.Ap.Serv.SP.Cuff.Valual.CuffRealSoCyExtExist:GypMeMsEndoPo.St.AppBel.TaGalOn.GypMeCopysEngPosits(插入式Java.U.L.Cype):非法参数类型的问题(在集合类型“java. U.L.Cube”中,'Copy.AppBel.TasOn.GROUP成员''类COM.AppBel.ActhOn.GROUP成员)。不允许实体类型的数组或集合。tagalone app engine未知的google appengine云端点问题标记

最佳答案

我不记得我在哪里读过它,但是——如果我没有弄错的话——CE不允许数组或列表作为方法参数。别问我为什么。我记得看到的解决方案是将一个对象传递给该方法,并将列表作为对象属性之一。
那么你的方法应该是:

public List<GroupMembers> insertGroupMembers(MembersWrapper membersWrapper) {
  for (GroupMembers groupMember : membersWrapper.members) {
    mgr.persist(groupMember);
    listMembers.add(groupMember);
  }
  …
}

10-08 13:38