Не удалось лениво инициализировать коллекцию ролей, Spring - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь получить информацию из API в Spring, но это дает мне ошибку, потому что одно из полей - это Set. Как получить json со всей информацией? Если я использую JsonIgnore, он не даст мне нужный набор, верно?

Мой класс:

@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "saloon")
public class Saloon implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String name;


    @OneToMany(mappedBy = "saloon")
    private Set<Service> services;


...

1 Ответ

0 голосов
/ 27 мая 2020

Атрибуты со значениями коллекции по умолчанию выбираются лениво. Одно из простых решений - изменить его на

@OneToMany(mappedBy = "saloon", fetch = FetchType.EAGER)

, но это может вызвать серьезные проблемы с производительностью в различных случаях.

Чтобы найти оптимальное решение, вам необходимо проанализировать свой проект, ie как вы используете это свойство в своем коде.

Вы можете посмотреть OpenEntityManagerInViewInterceptor.

...