import org.springframework.data.domain.Page; //导入方法依赖的package包/类
public void doResourceMigration(final ResourceRepository resourceRepository,
final GraphResourceRepository resourceHierarchicalRepository, final int pageSize) {
int numOfResourcesSaved = 0;
Pageable pageRequest = new PageRequest(0, pageSize, new Sort("id"));
long numOfResourceEntitiesToMigrate = resourceRepository.count();
Page pageOfResources;
do {
pageOfResources = resourceRepository.findAll(pageRequest);
List resourceListToSave = pageOfResources.getContent();
numOfResourcesSaved += pageOfResources.getNumberOfElements();
resourceListToSave.forEach(item -> {
// Clear the auto-generated id field prior to migrating to graphDB
item.setId((long) 0);
LOGGER.trace("doResourceMigration Resource-Id: {} Zone-name: {} Zone-id: {}",
item.getResourceIdentifier(), item.getZone().getName(), item.getZone().getId());
});
resourceHierarchicalRepository.save(resourceListToSave);
LOGGER.info("Total resources migrated so far: {}/{}", numOfResourcesSaved, numOfResourceEntitiesToMigrate);
pageRequest = pageOfResources.nextPageable();
} while (pageOfResources.hasNext());
LOGGER.info("Number of resource entities migrated: {}", numOfResourcesSaved);
LOGGER.info("Resource migration to Titan completed.");
}