我有一个用户模型。它在我的 Spring Security 中使用,我有一些 HashSet 字段,其中包含我的用户的角色。但现在我尝试设置休息。当我获得 json 格式的 User 对象时,由于这个 HashSet,我还得到了一些无限循环。
我的控制器:
@RequestMapping(value="/rest/{login}", method = RequestMethod.GET)
public String getRest(@PathVariable String login, Model model){
model.addAttribute("user",dao.findByLogin(login));
return "rest";
}
Run Code Online (Sandbox Code Playgroud)
小片段:
{
"user" : {
"login" : "roman",
"password" : "$2a$10$04TVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "$2a$10$04TVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "$2a$10$04TVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "$2a$10$04TVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "$2a$10$04TVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "$2a$10$04TVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "$2a$10$04TVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "$2a$10$04TVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleI ....
Run Code Online (Sandbox Code Playgroud)
在这种情况下我能做什么?
用以下方式注释user的属性UserRole:
@JsonBackReference
Run Code Online (Sandbox Code Playgroud)
这告诉杰克逊这是一个循环引用,不应该被遵循。