У меня есть набор сущностей (шаблонов)
Мне нужно полностью клонировать этот набор и создать такой же набор с новыми идентификаторами.
У меня есть 3 метода, подобных этому (Entity One - Пользователь):
private Map<String, String> createUsers() {
Map<String, String> userIds = new HashMap<>();
Iterator<User> users = userService.findAllUsers();
while (users.hasNext()) {
User user = users.next();
String oldId = user.getId();
user.setId(generateNewId());
user.setName(generateNewName());
userService.saveUser(user);
userIds.put(oldId, user.getId());
}
return userIds;
}
И два похожих метода (Entity Two - Person, а Entity Three - Book). В каждом методе я создаю новую сущность и сохраняю старые и новые IDS. После этого я клонирую Заказы и заново связываю старый идентификатор и новый идентификатор. Я делаю это так:
if (userIds.containsKey(order.getUserId())) {
order.setUserId(userIds.get(order.getUserId()));
}
if (personIds.containsKey(order.getPersonId())) {
order.setPersonId(personIds.get(order.getPersonId()));
}
Эта структура ужасна, и я хочу ее реорганизовать. Но у меня нет идей.