我已经用外键连接了表。我的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;
}
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
好的,我用@JsonIgnore 修复了它:
@OneToOne(mappedBy = "baseUserConfig")
@JsonIgnore
private IamUser iamUser;
神不在的星期二
TA贡献1963条经验 获得超6个赞
“问题”是当spring以json格式返回你的数据时,它会调用你返回的这些对象的getter和setter。由于它们是仍然链接到活动会话的实体,这将导致获取其余数据。
解决此问题的一种方法是使用 DTO 对象而不是返回实体。
添加回答
举报
0/150
提交
取消