【问题标题】:Can't Update Multi record Error Transaction is Inactive无法更新多记录错误事务处于非活动状态
【发布时间】:2017-01-14 10:49:50
【问题描述】:

我正在尝试使用 Transaction ebean 更新多条记录,但是当我尝试多条记录时,屏幕上出现错误:

[IllegalStateException:事务处于非活动状态]

有什么想法吗?

public Result savemulti(String selected) throws PersistenceException {
    Form<Computer> computerForm = formFactory.form(Computer.class).bindFromRequest();
    if(computerForm.hasErrors()) {return badRequest(views.html.computers.editMulti.render(AuthorisedUser.findByEmail(request().username()), computerForm, selected));}
    java.util.Date dtcreate = new java.util.Date();
    String connectedEmail = ctx().session().get("email");
    AuthorisedUser singleUser = AuthorisedUser.findByEmail(connectedEmail);
    String[] ids = selected.split(";");
    Transaction txn = Ebean.beginTransaction();
    try{
        for (String temp : ids){  
            Computer savedComputer = Computer.find.byId(Long.parseLong(temp));
            if (savedComputer != null){
                Computer newComputerData = computerForm.get();
                savedComputer.company = newComputerData.company;
                savedComputer.discontinued = newComputerData.discontinued;
                savedComputer.introduced = newComputerData.introduced;
                savedComputer.name = newComputerData.name;
                savedComputer.status = newComputerData.status;          
                savedComputer.moddt = new java.sql.Timestamp(dtcreate.getTime());            
                savedComputer.modby = singleUser.userName;
                savedComputer.site = singleUser.site;                

                savedComputer.update();
                flash("success", "Computer [ " + computerForm.get().name + " ] has been updated");
                txn.commit();
            }
        }            
    } finally {
        txn.end();
    }        
    return GO_HOME;
}

【问题讨论】:

    标签: java playframework ebean


    【解决方案1】:

    我只是在交易前放置,效果很好,谢谢。

     public Result savemulti(String selected) throws PersistenceException {
    
      Form<Computer> computerForm = formFactory.form(Computer.class).bindFromRequest();
      if(computerForm.hasErrors()) {return badRequest(views.html.computers.editMulti.render(AuthorisedUser.findByEmail(request().username()), computerForm, selected));}
    
        java.util.Date dtcreate = new java.util.Date();
        String connectedEmail = ctx().session().get("email");
        AuthorisedUser singleUser = AuthorisedUser.findByEmail(connectedEmail); 
    
    
      String[] ids = selected.split(";");
    
              for (String temp : ids) 
              {  
          Transaction txn = Ebean.beginTransaction();
    
    
            try 
            {
    
    
                Computer savedComputer = Computer.find.byId(Long.parseLong(temp));
                if (savedComputer != null) 
                {
                    Computer newComputerData = computerForm.get();
                    savedComputer.company = newComputerData.company;
                    savedComputer.active = newComputerData.active;
                    savedComputer.discontinued = newComputerData.discontinued;
                    savedComputer.introduced = newComputerData.introduced;
                    savedComputer.name = newComputerData.name;
                    savedComputer.status = newComputerData.status;           
                    savedComputer.moddt = new java.sql.Timestamp(dtcreate.getTime());            
                    savedComputer.modby = singleUser.userName;
                    savedComputer.site = singleUser.site;                
    
                    savedComputer.update();
    
                    txn.commit();
                }
              }            
    
              finally { txn.end(); }         
    }
    
      flash("success", "Computers [ " + selected + " ] has been updated");
    
      return GO_HOME;
    } 
    

    【讨论】:

      猜你喜欢
      • 2011-08-21
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 2016-06-29
      • 2012-04-04
      • 1970-01-01
      相关资源
      最近更新 更多