我在Spring Boot应用程序中的控制器有问题。当我在控制器上进行调用(URI /调用)时,对象列表始终为null。

{
    "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;
}

最佳答案

通过写这个问题,我找到了解决方案,所以我分享了:

使用@JsonManagedReference@JsonBackReference批注。

More information here

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;
}

09-12 05:36