многие ко многим spring jpa не возвращает все данные в JSON

#java #spring-boot #hibernate #jpa #spring-data-jpa

#java #spring-boot #спящий режим #jpa #spring-data-jpa

Вопрос:

Я создал отношения «многие ко многим». Он возвращает данные правильно. Однако я заметил, что если данные существуют в разделе canUse json и были вызваны ранее другим игроком, он не печатает данные снова, печатаются только новые значения.

JOSN

 [
    {
        "id": 12,
        "firstname": "asdfghjkl ",
        "surname": "asda",
        "canUse": [
            {
                "id": 0,
                "techniqueName": "JAVA"
            },
            {
                "id": 1,
                "techniqueName": "PHP"
            },
            {
                "id": 2,
                "techniqueName": "PYTHON"
            }
        ]
    },
    {
        "id": 49,
        "firstname": "asc",
        "surname": "as",
        "canUse": []
    },
    {
        "id": 90,
        "firstname": "LOL",
        "surname": "LOL",
        "canUse": []
    }*,
    {
        "id": 91,
        "firstname": "Kareem",
        "surname": "LOL",
        "canUse": [
            1,
            2,
            {
                "id": 3,
                "techniqueName": "HASKELL"
            }
        ]
    },*
    {
        "id": 92,
        "firstname": "Omar",
        "surname": "LOL",
        "canUse": []
    }
]
 

Объект игрока

 @Entity
@Table(name = "players")
@EntityListeners(AuditingEntityListener.class)
@JsonIdentityInfo(
        generator = ObjectIdGenerators.PropertyGenerator.class,
        property = "id")
public class Players {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="player_id")
    private int id;
    private String firstname;
    private String surname;
    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinTable(
            name = "able_to_use",
            joinColumns = {@JoinColumn(name = "player_id", referencedColumnName = "player_id")},
            inverseJoinColumns = {@JoinColumn(name = "technique_id", referencedColumnName = "id")}
    )
    private List<Technique> canUse;
    //Getters and Setters
 

Сущность техники

 @Entity
@Table(name = "technique")
@EntityListeners(AuditingEntityListener.class)

@JsonIdentityInfo(
        generator = ObjectIdGenerators.PropertyGenerator.class,
        property = "id")
public class Technique {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
    @Column(name = "technique_name")
    private String techniqueName;
    @JsonIgnore
    @ManyToMany(mappedBy = "canUse", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private List<Players> ableToUse;
      //Getters and Setters
 

Заранее благодарю вас, проблема возникает для проигрывателя с идентификатором 91. этот проигрыватель также должен печатать PHP и PYTHON, но печатается только идентификатор.

Комментарии:

1. canUse не сможет десериализовать с помощью обычного mapper

2. @silentsudo Не могли бы вы уточнить? Извините, я полный новичок в этом.