1
回答
在有附件上传的情况下 Jfinal的事务处理
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

@JFinal 你好,请教一个问题:我在controller里面需要上传一个附件且这里面有几个数据提交需要使用事务该怎么实现。我发现在去掉文件上传后是有事务回滚的

我的代码如下:

@Before(Tx.class)
  public void saveInvoke() {
    Res res = new Res();
    //保存附件
    String filename = FileUtil.saveFile(getFile("apply.network_topology"));

    String id = IDUtils.pk();
    Apply apply = getModel(Apply.class, MODELNAME);
    String isnewacc = getPara("isnewacc");
    if (!"on".equals(isnewacc)) {
      apply.set("isnewacc", 1);
      apply.set("system", getPara("biz_system"));
    } else {
      apply.set("isnewacc", 0);
      apply.set("system", getPara("system"));
    }
    apply.set("id", id);
    apply.set("date", new DateTime().toString("yyyy-MM-dd HH:mm:ss"));
    apply.set("network_topology", filename);
    apply.save();

    //
    String devices = getPara("devices");
    Gson gson = new Gson();
    Type type = new TypeToken<List<List<String>>>() {
    }.getType();
    List<List<String>> deviceList = gson.fromJson(devices, type);
    if (deviceList != null && !deviceList.isEmpty()) {
      Device device = new Device();
      for (List<String> s : deviceList) {
        String[] d = s.get(1).split("~");
        device.set("device_type", d[0]);
        device.set("device_name", d[1]);
        device.set("ip", d[2]);
        device.set("port", d[3]);
        device.set("dbname", d[4]);
        device.set("instance", d[5]);
        //
        device.set("id", IDUtils.pk());
        device.set("apply_id", id);
        device.save();
      }
    }
   render("list.jsp");
}



举报
enterpgup
发帖于1年前 1回/111阅

以下是问题补充:

顶部