Как я могу реорганизовать этот код и отделить метод? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть набор сущностей (шаблонов)

enter image description here

Мне нужно полностью клонировать этот набор и создать такой же набор с новыми идентификаторами.

У меня есть 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()));
}

Эта структура ужасна, и я хочу ее реорганизовать. Но у меня нет идей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...