Теперь вы решили круглость. Когда вам нужна метка, переопределите метод в родительской сущности. Когда вам нужны определенные поля, создайте определенный сериализатор.
имаюсь разработкой веб-приложения для отдыха с использованием Spring Framework, Hibernate и JSON. Пожалуйста, предположим, что у меня есть две сущности, как показано ниже:
BaseEntity.java
@MappedSuperclass
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,property = "id" )
public abstract class BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
public long getId() {
return id;
}
}
University.java
public class University extends BaseEntity {
private String uniName;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER,orphanRemoval = true)
@JoinColumn(name = "university_id")
private List<Student> students=new ArrayList<>();
// setter an getter
}
Student.java
public class Student extends BaseEntity{
private String stuName;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "university_id",updatable = false,insertable = false)
private University university;
// setter an getter
}
когда я вызываю api rest, чтобы перечислить University, все работает нормально, как я ожидаю, но когда я вызываю api rest, чтобы с нетерпением перечислять студента, мой ответ JSON
[
{
"id": 1,
"stuName": "st1",
"university": {
"id": 1,
"uniName": "uni1"
}
},
{
"id": 2,
"stuName": "st2",
"university": 1
}
]
но мойжелательно ответ:
[
{
"id": 1,
"stutName": "st1",
"university":
{
"id": 1,
"uniName": "uni1"
}
},
{
"id": 2,
"stutName": "st2",
"university":
{
"id": 1,
"uniName": "uni1"
}
}
Обновление 1: моя спящая аннотация работает нормально, у меня проблема с JSON
Требования :
Мне нужно с обеих сторон получить с нетерпением (университетская сторона в порядке)
Мне нужен университетский объект на стороне студента для каждого студента (когда я с нетерпением выбираю студента)
Какой сериализации или конфигурации JSON мне нужно сделать, чтобы соответствовать желаемому ответу?
Обновление 2:
удалив@JsonIdentityInfo и редактирование студенческой стороны, как показано ниже:
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "university_id",updatable = false,insertable = false)
@JsonIgnoreProperties(value = "students", allowSetters = true)
private University university;
ответ JSON по-прежнему такой же, мне нужен мойжелательно ответ, который упомянут выше.
Спасибо