Java 运行作业时更新Play Framework中的行
我在玩一个工作!这需要一段时间(超过1小时)。在这项工作中,我想保存一些id到我的MySQL数据库。但是,在写入数据之后,如果我在终端中查询数据库(使用MySQL监视器),则行似乎不会被更新。所以我需要在作业运行时更新此数据 代码如下:Java 运行作业时更新Play Framework中的行,java,database,jpa,playframework,persistence,Java,Database,Jpa,Playframework,Persistence,我在玩一个工作!这需要一段时间(超过1小时)。在这项工作中,我想保存一些id到我的MySQL数据库。但是,在写入数据之后,如果我在终端中查询数据库(使用MySQL监视器),则行似乎不会被更新。所以我需要在作业运行时更新此数据 代码如下: this.ga.lastUID = msgnums[i-1]; this.ga.count = count[i-1]; this.ga.merge(); 其中this.ga是我的JPA模型的实例 如果我使用save()方法,我会得到一个分离的异常。如果我使用f
this.ga.lastUID = msgnums[i-1];
this.ga.count = count[i-1];
this.ga.merge();
其中this.ga是我的JPA模型的实例
如果我使用save()方法,我会得到一个分离的异常。如果我使用findById(this.ga.id)方法来获取一个新对象,我可以使用save(),但它的结果与merge()相同(即,不更新任何内容)。有人知道如何解决这个问题吗
谢谢 作业执行是事务性的。你在工作中所做的一切都将在工作结束时提交 为了实现您想要的,您可以创建subjob类并在main类中调用它 差不多
public class SubJob extends Job {
private Ga ga;
public SubJob(Ga ga) {
this.ga = ga;
}
@Override
public doJob() throws Exception {
ga = ga.merge();
ga.lastUID = msgnums[i-1];
ga.count = count[i-1];
ga.save();
}
}
在你的主要工作中,你打电话给
new SubJob(ga).now().get();
您的子对象将在另一个事务中执行保存,该事务将在子对象结束时提交
小心,我们使用这种工作方式,您无法回滚所有主作业作业执行是事务性的。你在工作中所做的一切都将在工作结束时提交 为了实现您想要的,您可以创建subjob类并在main类中调用它 差不多
public class SubJob extends Job {
private Ga ga;
public SubJob(Ga ga) {
this.ga = ga;
}
@Override
public doJob() throws Exception {
ga = ga.merge();
ga.lastUID = msgnums[i-1];
ga.count = count[i-1];
ga.save();
}
}
在你的主要工作中,你打电话给
new SubJob(ga).now().get();
您的子对象将在另一个事务中执行保存,该事务将在子对象结束时提交
小心,我们使用这种工作方式,您不能回滚所有主要工作