Не удалось записать JSON и .JsonMappingException: ошибка бесконечной рекурсии (StackOverflowError) - PullRequest
0 голосов
/ 15 октября 2019

Я получаю ошибку рекурсии StackOverflow при запуске запроса в Postman. Вот классы модели:


@Entity
public class UserWallet {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;

    @NotNull
    private String userName;

    private String firstName;
    private String lastName;
    private String email;

    @Temporal(TemporalType.DATE)

    private Date createdDate;

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

    private Set <Transaction> transactions = new HashSet<>();

Класс модели для транзакции:


@Entity
public class Transaction {

    @Id
    @GeneratedValue
    private Long id;

    private BigDecimal amount;

    private java.util.Date transactionDate;

    private Long  transactionReference;

    private String details;

    @ManyToOne

    private UserWallet userAccount;

Когда я запускаю запрос к Почтальону, он говорит: Не удалось написать JSON: бесконечная рекурсия (StackOverflowError);вложенным исключением является com.fasterxml.jackson.databind.JsonMappingException: бесконечная рекурсия (StackOverflowError) (через цепочку ссылок: java.util.ArrayList [0] -> com.Wallet.Model.UserWallet [\ "Transactions \"])).

1 Ответ

0 голосов
/ 15 октября 2019

если hibernate генерирует ошибку стека бесконечного цикла, используйте свойство @jsonIgnore, чтобы остановить сериализацию. Затем при десериализации поле JSON будет проигнорировано и не будет выдано никакой ошибки, это свойство игнорируется, и его значение получает значение по умолчанию своего типа.

Перейдите по ссылке для получения дополнительной информации: Динамическое игнорирование полей из объекта Java при отправке в виде JSON из Spring MVC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...