Java JPA - разрыв отношений OneToOne после обновления - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть две таблицы (сущности) с именами User и Profile в JPA, которые синхронизируются с базой данных MySQL.Соотношение между ними OneToOne и двунаправленным.

Вот как я сделал соотношение в модели:

Пользователь:

@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = false)
private Profile profile;

Профиль:

@OneToOne(cascade = CascadeType.ALL, mappedBy = "profile", optional = false)
private User user;

Я создаю REST API, и моя проблема заключается в том, что я обновляю профиль по его идентификатору с контроллера.

Перед обновлением данных в Profile я могу getUser из этого профиля.

После того, как я обновил данные в Profile (profileService.update(profile);), я не могу getUser для этого профиля.

Похоже, что связь была нарушена.

В базе данныхв таблице Profile USER_ID нет, просто в таблице «Пользователь» есть столбец PROFILE_ID.

Отношение работает нормально, пока я его не обновлю.

1 Ответ

0 голосов
/ 27 декабря 2018

Я исправил проблему.Это было вызвано тем, что пользователь не установил профиль в профиль перед обновлением, потому что dao.update () просто заменял данные, а не обновлял их.

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