我在JPA中有两个名为User
和Profile
的表(实体),它们正在与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列。
在我更新之前,该关系正常。
答案 0 :(得分:0)
我解决了问题。 这是由于更新之前未将用户设置为个人资料引起的,因为'dao.update()'只是替换数据,而不是实际更新数据。