Сопоставление Spring Boot JPA один-к-одному генерирует ошибку StackOverflow - PullRequest
0 голосов
/ 26 июня 2019

Попытка запустить Spring-Boot JPA на MySQL и буквально следовала этому руководству здесь: https://spring.io/guides/gs/accessing-data-mysql/ Все прошло хорошо, как и ожидалось.

Однако, в тот момент, когда я принес новую сущность, а именно. Адрес пользователя и установленное однонаправленное сопоставление 1 к 1, приложение начинает выдавать ошибку StackOverFlow - даже несмотря на то, что сопоставление является очень простым, которое я использовал без проблем на серверах приложений (например, GlassFish / Payara 5) несколько раз.

Ниже приведено сопоставление:

В User Сущность

@OneToOne(mappedBy = "user", optional = false, cascade = CascadeType.ALL)
private Address address;

.. другая сторона отношений, т. Е. В Address:

@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name="USER_ID")
private User user;

Ожидается: одна строка: {"id":1,"name":"First","email":"someemail@someemailprovider.com","address":{"id":2,"line1":"Line1","postcode":"PST CD","city":"City","state":"State","country":"IN"

Факт: вышеприведенная строка печатается на консоли бесчисленное количество раз, это ошибка StackOverflow.

1 Ответ

0 голосов
/ 26 июня 2019

Если вы имеете в виду «Бесконечная рекурсия (StackOverflowError)».

Вам может понадобиться добавить @JsonIgnore к параметрам отображения (выше вашего отношения с одним тоном), чтобы прекратить зацикливание.

...