Je suis en train de développer une application web de repos avec framework Spring, Hibernate et JSON. Supposons que j'ai deux entités comme ci-dessous:Spring Rest et Hibernate et JSON dosnt fonctionnent comme prévu
University.java
public class University extends BaseEntity {
private String name;
private String address;
private String telephon;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER,orphanRemoval = true,mappedBy = "university")
@JsonManagedReference
private List<Student> students=new ArrayList<>();
// setter an getter
}
Student.java
public class Student extends BaseEntity{
private String firstName;
private String lastName;
private String section;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "UNIVERSITY_ID",nullable = false)
@JsonBackReference
private University university;
// setter an getter
}
Mon exigence:
Quand j'appelle la liste étudiant api, j'ai besoin avoir un objet Usiversité dans chaque objet étudiant, De quel type de config ou d'annotation j'ai besoin pour gérer cette situation? le résultat est:
[
{
"id": 1,
"firstName": "aa",
"lastName": "aa",
"section": "aa"
},
{
"id": 2,
"firstName": "bb",
"lastName": "bb",
"section": "bb"
},
{
"id": 3,
"firstName": "cc",
"lastName": "cc",
"section": "cc"
}
]
et je dois avoir cette réponse quand je l'appelle liste des étudiants
[
{
"id": 1,
"firstName": "aa",
"lastName": "aa",
"section": "aa",
"university": {
"id": 1,
"name": "string",
"address": "string",
"telephon": "string"
}
},
{
"id": 2,
"firstName": "bb",
"lastName": "bb",
"section": "bb",
"university": {
"id": 1,
"name": "string",
"address": "string",
"telephon": "string"
}
},
{
"id": 3,
"firstName": "cc",
"lastName": "cc",
"section": "cc",
"university": {
"id": 3,
"name": "www",
"address": "www",
"telephon": "www"
}
}
]
mise à jour:
et pour la liste universitaire j'ai besoin cette réponse
[
{
"id": 1,
"name": "string",
"address": "string",
"telephon": "string",
"students": [
{
"id": 1,
"firstName": "aa",
"lastName": "aa",
"section": "aa"
},
{
"id": 2,
"firstName": "bb",
"lastName": "bb",
"section": "bb"
}
]
},
{
"id": 3,
"name": "www",
"address": "www",
"telephon": "www",
"students": [
{
"id": 3,
"firstName": "cc",
"lastName": "cc",
"section": "cc"
}
]
}
]
Toute aide et conseil apprécié.
J'ai besoin d'avoir @JsonManagedReference du côté de l'université. parce que si je l'enlève je ne peux pas obtenir la liste d'université avidement. – Generic
Pourquoi? L'un est JPA l'autre est la sérialisation JSON. –
jpa le faire parfaitement, Mais quand j'ai besoin des deux côtés avidement, il a des ennuis avec JSON. Quel côté a @JsonManagedReference cela fonctionnera. – Generic