出现的问题:
问题出现的原因:
-
无法直接打印实体对象user,即调用实体类的toString()方法出现异常,因为toString()都打印了对方,会导致死循环,最终栈溢出。
解决的方法是:
-
重写toString方法,将toString()方法除去打印对方的语句
新问题:
问题出现的原因:
- spring mvc 将对象转换为Jason字符串时,调用的并不是toString()方法,而是通过反射获取属性然后转换为字符串
- 在将对象解析为 json格式字符串时,由于user对象中有role对象,role对象中也有user对象,解析时会形成死循环
解决的方法是:
打破死循环,将其中一个类的字段使用@JsonIgnore给忽略,@JsonIgnore的作用是spring mvc将对象转换为json格式字符串时忽略该属性,防止出现两个对象相互调用出现死循环。建议忽略放弃了维护权的实体类属性,即role。
这样查找用户时也能同时返回,该用户拥有的角色。
参考链接:
https://www.cnblogs.com/ymqj520/p/11378280.html
https://blog.csdn.net/weixin_43871371/article/details/106355072