【问题标题】:Updating a linked column gives an error in airtable更新链接的列会导致 airtable 出现错误
【发布时间】:2021-05-12 11:09:17
【问题描述】:

我有一个名为 event 的表。事件表有一个名为参加者的链接列,该列链接到参加者表。这意味着参加者列包含参加者表的 id 列表。您可以在图像中看到这一点。

我正在尝试使用以下使用 spring boot jpa 的代码更新该列。我在这里使用的 userId 是参加者表中的现有 Id。

  public Event registerUser(String eventId, String userId) {
        Event event = (Event) this.getEventById(eventId).get();
        List<String> list = event.getAttendees();
        list.add(userId);
        event.setAttendees(list);
        return eventRepository.update(event);
    }



 public Event update(Event event) {
        return this.table.update(event);
    }

但它给出了以下错误

.AirtableException:值不是记录 ID 的数组。 (INVALID_VALUE_FOR_COLUMN) [Http 代码 422]

请帮忙。

【问题讨论】:

    标签: java spring-boot jpa airtable


    【解决方案1】:

    只需将用户 ID 添加为 String userId 似乎不是正确的方法,因为它会寻找记录 ID 数组

    【讨论】:

    • 该 id 已添加到此处的列表中。并且该列表作为值提交。不仅仅是字符串值
    • 是的,但我的意思是与会者本身可能是数组,类似于 json 格式
    【解决方案2】:

    我发现当您要更新时,原始表中的链接表中不能有这么多列。例如,如果我们有参加者表中的参加者姓名、参加者年龄之类的列,而不是事件表中的参加者列,则您无法更新参加者姓名和参加者年龄的链接列。您只能为参加者列设置值。因此你可以做的是你可以从你的实体类中删除参加者姓名和参加者年龄的属性。我把我在使用spring boot时使用的实体类放在这里

     @Data
        @EqualsAndHashCode
        @ToString
        public class Event {
        
            private String id;
            private String activity;
            private String type;
            private String description;
            private String image;
            private String price;
            private Date start;
            private Date end;
            private List<String> attendees;
            //private List<String> attendeeNames; 
            //private List<String> attendeeAges;
            private String level;
            private List<String> days;
            private String officeRndId;
            private int seatCount;
          
        }
     
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 1970-01-01
      • 2011-12-11
      相关资源
      最近更新 更多