Список <object>ноль при десериализации json в контроллере Spring Boot - PullRequest
0 голосов
/ 31 октября 2019

У меня проблема с контроллером в приложении Spring Boot. Когда я выполняю вызов на контроллере (URI / вызов), список объектов всегда равен нулю.

{
    "code": "TEST",
    "name": "TEST NAME",
    "groupe": "A1",
    "list": [
        {"type":"web", "link":"https://google.com/"},
        {"type":"web", "link":"https://google2.com/"}
    ]
}
@PostMapping(value="/call")
    public ResponseEntity<Void> ajouterEnvironnement(@RequestBody First first) {
        first.getCode() // value : "TEST"
        first.getList() // value : null
}
public class First {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String code;
    private String name;
    private String groupe;
    @OneToMany(mappedBy = "first", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private List<Second> list;
}
public class Second {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String type;
    private String link;
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "first_id", nullable = false)
    private First first;
}

1 Ответ

0 голосов
/ 31 октября 2019

Написав этот вопрос, я смог найти решение, поэтому я поделился им:

Используйте аннотации @JsonManagedReference и @JsonBackReference.

Более подробная информация здесь.

public class First {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String code;
    private String name;
    private String groupe;
    @OneToMany(mappedBy = "first", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JsonManagedReference
    private List<Second> listLiens;
}
public class Second {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String type;
    private String link;
    @ManyToOne(fetch = FetchType.EAGER)
    @JsonBackReference
    @JoinColumn(name = "first_id", nullable = false)
    private First first;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...