我用quartz来定义了一个任务,这个任务就是用SQL从数据库里检索出一些数据,然后用循环遍历插入了一张数据表中,我本地测试时数据插入都是正确的。但是在服务器上,每次每条数据都会有一条重复记录。我看log里SQL取出来的数据是没有重复记录的,但是插入到数据库中就会被double。有可能是什么原因?
public void execute(JobExecutionContext context) throws JobExecutionException {
try {
JobDataMap data = context.getJobDetail().getJobDataMap();
String taskId = context.getJobDetail().getKey().getName();
Sql sql = Sqls.create("SELECT xxxxx FROM xxx");
sql.setCallback(Sqls.callback.entities());
sql.setEntity(dao.getEntity(xxx.class));
dao.execute(sql);
List<xxx> xxxList = sql.getList(xxx.class);
dao.clear(xxx.class);
for (xxx x : xxxList) {
......
dao.insert(x);
}
......
}
catch (Exception e){
e.printStackTrace();
}
}