Spring Boot JPA: идентификатор экземпляра bingo.model.Group был изменен с 1702 на ноль - PullRequest
0 голосов
/ 24 сентября 2018

У меня короткий вопрос:
Последнее сохранение работает (последнее сохранение будет обновлением).
Но первое сохранение не работает. (Первое сохранение будет вставкой)
Я не могу вставить этот путь, как это возможно?

@GetMapping(value = "/delete/{id}")
    public String delete(@PathVariable BigInteger id, Model model) {
        try {
                Group group = groupService.findById(id);
                group.setId(null);
                group.isLog(true);
                // This Save will be Insert Data
                groupService.save(group);

                group = groupService.findById(id);
                group.isLog(true);
                //This Save will be Update Data
                groupService.save(group);

            return "redirect:/accountsGroup/";
        } catch (Exception ex) {
            return "masters/accountsInfo/groups/index";
        }
    }

1 Ответ

0 голосов
/ 24 сентября 2018

Вы не можете просто установить идентификатор ноль.

Сущность находится в управляемом состоянии и не будет новой только потому, что для ID задано значение NULL.

Надлежащим способом будет клонирование состояния сущности в новом экземпляре.

Вы также можете попытаться отсоединить объект (EntityManager.detach), а затем установить для идентификатора значение NULL.Возможно это вставит новый ряд.Но, как я сказал, это не тот способ, которым вы должны это делать.

Подробнее о состояниях сущностей здесь: https://vladmihalcea.com/a-beginners-guide-to-jpa-hibernate-entity-state-transitions/

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