为了账号安全,请及时绑定邮箱和手机立即绑定

Spring Boot OneToOne 仍然加载相同的数据

Spring Boot OneToOne 仍然加载相同的数据

慕村9548890 2022-07-14 17:05:50
我已经用外键连接了表。我的Spring Boot实体是这样的:User.java @OneToOne(fetch = FetchType.LAZY, optional = false) @JoinColumn(name = "BASE_USER_CONFIG_ID_FK") private BaseUserConfig baseUserConfig;BaseUserConfig.java@OneToOne(fetch = FetchType.LAZY, mappedBy = "baseUserConfig")@LazyCollection(LazyCollectionOption.EXTRA)private User user;当我尝试从数据库加载数据时,数据仍在加载。我只需要使用一个BaseUserConfig数据获得一个结果。谢谢你的帮助 !
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

它是反序列化对象时的循环响应问题。


例如:


public class User {


 BaseUserConfig baseUserConfig; 



public class BaseUserConfig{


 User user;


}


查看完整回答
反对 回复 2022-07-14
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

好的,我用@JsonIgnore 修复了它:


@OneToOne(mappedBy = "baseUserConfig")

@JsonIgnore

private IamUser iamUser;


查看完整回答
反对 回复 2022-07-14
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

“问题”是当spring以json格式返回你的数据时,它会调用你返回的这些对象的getter和setter。由于它们是仍然链接到活动会话的实体,这将导致获取其余数据。

解决此问题的一种方法是使用 DTO 对象而不是返回实体。


查看完整回答
反对 回复 2022-07-14
  • 3 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信