#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 Не могли бы вы уточнить? Извините, я полный новичок в этом.