使用JPAPagingitemReader从查询中省略的记录

时间:2014-12-05 07:39:44

标签: jpa-2.0 spring-batch entitymanager atomikos

在我们的项目中,我们在第一步中将所有批处理所需的数据转储到一个临时表中。在第二步中,我们从temperory表中读取数据,处理它(处理器)并从相同的临时表中删除它(在JPAWriter中)。我们正在使用JPAPagingItemReader,因为很多行被跳过,我们面临同样的问题。 链接中给出的解决方案(即,使用JDBCPagingItemReader)为我工作

Spring batch jpaPagingItemReader why some rows are not read?

我这里的问题很少,

  1. 使用JDBCPagingItemReader与JPAPagingWriter一起使用是否正确?
  2. 由于步骤将在事务中执行,如果在回滚等处理/写入过程中出现故障会不会有问题?
  3. 有关性能的任何问题,因为我们需要处理100万条记录?
  4. 除了使用JDBCPagingItemReader之外的任何其他方法,请提供
  5. 由于

1 个答案:

答案 0 :(得分:0)

  1. 我无法想出为什么OOTB不好的原因,但这取决于你的使用案例。
  2. Spring Batch旨在处理您的步骤的事务性。如果出现故障,Spring Batch的工作就是帮忙。我需要了解更多有关您能够提出确切解决方案的具体错误。
  3. 我不喜欢与性能相关工作的JPA相关内容。话虽这么说,它取决于诸如查询的复杂性,加载的数据量,处理100万条记录的窗口的时间等等,以便能够说出它是否足够高。
  4. 我建议使用JdbcPagingItemReader。它的线程是安全的,所以如果你需要加快速度,你可以做些事来帮助。