【发布时间】:2016-02-03 12:58:37
【问题描述】:
我正在尝试在 Spring Data 应用程序中模拟数据导入的进度,但我无法解决 Hibernate StaleStateException 的问题。大概是因为一旦原始 Progress 实体被保存(Id 是一个自动生成的 UUID),它就变得分离了。
因为Spring 负责幕后的所有事务/会话逻辑,我发现很难掌握实际发生的情况。
例如,我想做这样的事情:
Progress progress = new Progress();
progress.setStartTime(new Date());
int recordsProcessed = 0;
while(!importFinished) {
// import ten records
recordsProcessed += 10;
progress.setRecordsProcessed(recordsprocessed);
progressRepository.save(progress);
}
progress.setEndTime(new Date());
progressRepository.save(progress);
ProgressRepository 扩展CrudRepository/JpaRepository。
这样,如果在任何阶段导入失败,我都会在数据库中记录导入失败的记录,并且我可以批量保存,这样整个导入就不会回滚,需要重新运行.
关于Spring Data 是否可行的任何想法?
提前感谢您的任何建议。
【问题讨论】:
标签: java spring hibernate spring-mvc spring-data