【发布时间】: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