Return 发表于 2026-1-5 15:20:53

PAI无效

版本 9.5.1
9.2升级上来的

name:        rowSave
path:        jaxrs/table/{tableFlag}/row/save
type:        POST
description:        指定表中批量保存或更新数据.
不传ID可以保存
30条都传ID+数据不可以保存
29条都传ID+数据 +1条不传ID可以保存



Return 发表于 2026-1-5 15:29:44

if (jsonElement.isJsonArray()) {
    List<JpaObject> updateList = new ArrayList<>();
    List<JpaObject> insertList = new ArrayList<>();
   
    jsonElement.getAsJsonArray().forEach(o -> {
      JpaObject jo = gson.fromJson(o, cls);
      
      if (o.getAsJsonObject().has("id") && jo.getId() != null) {
            try {
                JpaObject oldjo = emc.find(jo.getId(), cls);
                if (oldjo != null) {
                  // 更新操作
                  jo.copyTo(oldjo, JpaObject.FieldsUnmodify);
                  updateList.add(oldjo);
                } else {
                  // ID存在但数据库中不存在,按新增处理
                  insertList.add(jo);
                }
            } catch (Exception e) {
                // 查找失败,按新增处理
                insertList.add(jo);
            }
      } else {
            // 没有ID,按新增处理
            insertList.add(jo);
      }
    });
   
    // 先处理更新
    if (!updateList.isEmpty()) {
      emc.beginTransaction(cls);
      for (JpaObject jo : updateList) {
            emc.check(jo, CheckPersistType.all); // 使用check而不是persist
      }
      emc.commit();
    }
   
    // 再处理新增
    os.addAll(insertList);
}

xadmin 发表于 2026-1-5 15:31:40

报错信息发看看,是不是id 校验规则没通过,可以看看忽略校验规则

Return 发表于 2026-1-5 16:40:51

xadmin 发表于 2026-1-5 15:31
报错信息发看看,是不是id 校验规则没通过,可以看看忽略校验规则

没有报错,是代码BUG,在处理JSON数组时,找到现有记录后直接return,跳过了后续的保存逻辑
页: [1]
查看完整版本: PAI无效