Java JPA-更新后OneToOne关系中断

时间:2018-12-27 16:33:27

标签: java spring jpa

我在JPA中有两个名为UserProfile的表(实体),它们正在与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,而我的问题是当我通过控制器中的ID更新配置文件时。

在更新Profile中的数据之前,我可以从此配置文件中getUser

Profile中更新profileService.update(profile);中的数据后,无法getUser使用此配置文件。

似乎关系破裂了。

在数据库中,Profile表上没有USER_ID,只有表“ User”具有PROFILE_ID列。

在我更新之前,该关系正常。

1 个答案:

答案 0 :(得分:0)

我解决了问题。 这是由于更新之前未将用户设置为个人资料引起的,因为'dao.update()'只是替换数据,而不是实际更新数据。