Проблема при сохранении существующего родительского объекта в дочерний объект - PullRequest
0 голосов
/ 08 января 2020

У меня есть существующая таблица Action с предварительно заполненными данными, и я пытаюсь сохранить объект Stop, который имеет Action.Id в качестве внешнего ключа. Ниже мой код, который я попробовал. Но в таблице Stop ссылка не сохраняется, даже при отсутствии ошибок.

  public class Stop {

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "ACTION_ID", updatable = false, insertable = false)
    private Action action;
}
public class Action {

    @Id
    @Column(name = "ACTION_ID")
    private String actionId;

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "ACTION_ID")
    private Stop stops;
}

Я попытался явно вызвать Optional<Action> action = actionRepo.findByActionId("ARRIVE") и установить объект остановки. Но это не сохранение со ссылкой.

Ответы [ 2 ]

0 голосов
/ 08 января 2020

Я думаю, вам нужно удалить аннотацию @JoinColumn из класса Action. Обычно вам это не нужно с обеих сторон.

public class Stop {
    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "ACTION_ID", updatable = false, insertable = false)
    private Action action;
}

public class Action {
    @Id
    @Column(name = "ACTION_ID")
    private String actionId;

    @OneToOne(fetch = FetchType.LAZY)
    private Stop stops;
}
0 голосов
/ 08 января 2020

После установки нового значения для объекта JPA вам нужно вызвать save

Optional<Action> action = actionRepo.findByActionId("ARRIVE");
    if (action.isPresent()){
    actionRepo.save(action.get().setActionName("balal"));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...