Теперь вы решили круглость. Когда вам нужна метка, переопределите метод в родительской сущности. Когда вам нужны определенные поля, создайте определенный сериализатор.

имаюсь разработкой веб-приложения для отдыха с использованием 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 по-прежнему такой же, мне нужен мойжелательно ответ, который упомянут выше.

Спасибо

Ответы на вопрос(8)

Ваш ответ на вопрос