Skip to content

Commit

Permalink
rework main class
Browse files Browse the repository at this point in the history
  • Loading branch information
anasoid committed Jan 7, 2025
1 parent 56e311e commit 0d9109d
Showing 1 changed file with 18 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,48 +60,43 @@ public void generate() {
long existCount = getDataGeneratorHelper().getCountFromDatabase();
finalElement = existCount > element ? 0 : Math.min(element, element - existCount);
}
//force generate Elemnt by count
for (int i = 0; i < finalElement; i++) {
transactionalGenerate();
}

generateElementStream(finalElement).forEach(entity -> loadOrCreate(entity));

log.info(">>>> End generate {} of {}", finalElement, getEntityClass().getSimpleName());
}

@Transactional(Transactional.TxType.REQUIRED)
void transactionalGenerate() {
generateElementStream(1).count();
}

@Override
public List<T> generate(int min, int max) {
Random random = new Random();
int element = random.nextInt(max - min + 1) + min;
log.info(">>>> Start generate [{},{}] of {}", min, max, getEntityClass().getSimpleName());
log.info(">>>> Start generate {} of {}", element, getEntityClass().getSimpleName());
List<T> result = generateElementStream(element).toList();
List<T> result = generateElementStream(element).map(entity -> loadOrCreate(entity)).toList();
log.info(">>>> End generate {} of {}", element, getEntityClass().getSimpleName());

return result;
}

private Stream<T> generateElementStream(long maxSize) {
return Instancio.stream(getEntityModel(initInstancioApi()))
.limit(maxSize);
}

.limit(maxSize)
.map(entity -> {
T old = getEntityByFunctionalId(entity);
if (old == null) {
getEntityDao().persist(entity);
return entity;
} else {
log.info(
">>>>>> skip persist {} with {}",
getEntityClass().getSimpleName(),
getFunctionalIdParams(old));
return old;
}
});
@Transactional(Transactional.TxType.REQUIRED)
protected T loadOrCreate(T entity) {
T old = getEntityByFunctionalId(entity);
if (old == null) {
getEntityDao().persist(entity);
return entity;
} else {
log.info(
">>>>>> skip persist {} with {}",
getEntityClass().getSimpleName(),
getFunctionalIdParams(old));
return old;
}
}


Expand Down

0 comments on commit 0d9109d

Please sign in to comment.