为了账号安全,请及时绑定邮箱和手机立即绑定

如果我把这个方法放到另外一个测试项目里面,就能正常的提交数据,这是为什么?

如果我把这个方法放到另外一个测试项目里面,就能正常的提交数据,这是为什么?

GCT1015 2023-04-08 22:18:30
一个很棘手的问题,做的是XML数据导入功能,数据无法提交,也没有出现任何异常,在控制台里面都没有出现插入语句,但如果我单纯的提交一个对象,就是普通的提交数据功能,也是在用一个事务里面,就能提交数据。代码如下,若代码有问题,请指出。/**      * 开始导入      *       * @param xmlList      *            XML文件绝对路径数组      * @return      */      private int sendImport(String[] xmlList) {          Session session = null;          try {              session = Database.getSession();              Session xmlSession = session.getSession(EntityMode.DOM4J);              session.beginTransaction();              for (int i = 0; i < xmlList.length; i++) {                  inportByXML(xmlSession, xmlList[i]);              }              session.getTransaction().commit();          } catch (Exception e) {              session.getTransaction().rollback();              Database.endTransaction(true);              return ERROR_IMPORT;          } finally {              session.close();          }          return IMPORT;      }        /**      * 存入数据库      *       * @param xmlSession      * @param xmlPath      *            XML绝对路径      * @throws DocumentException      */      private void inportByXML(Session xmlSession, String xmlPath)              throws DocumentException {          SAXReader reader = new SAXReader();          Document document = reader.read(xmlPath);          List entities = document.getRootElement().content();          Iterator it = entities.iterator();          while (it.hasNext()) {              Node item = (Node) it.next();              xmlSession.save(c.getName(), item);          }      }  
查看完整描述

2 回答

?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

[code="java" 
先保存在session中,然后再commit,你都不往session中装,commit没用。

查看完整回答
反对 回复 2023-04-12
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

Iterator it = entities.iterator(); 判断他it 是不是为空,不为空在执行 

查看完整回答
反对 回复 2023-04-12
  • 2 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信