以系统管理中,用户和角色多对多的关系为例
问题部分代码:
UserEntity:
@ManyToMany
@JoinTable(name = "user_role", joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id", columnDefinition = ("int COMMENT '用户id'"))}, inverseJoinColumns = {@JoinColumn(name = "role_id", referencedColumnName = "id", columnDefinition = ("int COMMENT '角色id'"))})
private Set<RoleEntity> roleEntitySet;
RoleEntity:
@ManyToMany(mappedBy = "roleEntitySet")
private Set<UserEntity> userEntitySet;
Controller:
@RequestMapping(value = "/list")
public Object list() {
return userJpa.findAll();
}
问题原因:
在json序列化UserEntity的时候,发现RoleEntity并去序列化,在序列化RoleEntity的时候,发现有UserEntity又去序列化,导致死循环
解决办法:
在死循环的属性中挑一个使用率较低的,前面加@JsonIgnore,不让他json序列化