OneToOne Пользователь Jhipster отношения - PullRequest
0 голосов
/ 07 ноября 2019

Я создал сущность UserExtra с отношением OneToOne к сущности пользователя, например

User.java

public class User extends AbstractAuditingEntity implements Serializable {

...

@OneToOne(mappedBy = "user")
    @JsonIgnoreProperties(value = "user")
    private UserExtra userExtra;

UserExtra.java

public class UserExtra extends AbstractAuditingEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    private Long id;

    @MapsId
    @JoinColumn(name = "id")
    @JsonIgnore
    private User user;
    ...

}

Но при поиске пользователя на терминале появляется эта ошибка:

SLF4J: Failed toString() invocation on an object of type [org.springframework.http.ResponseEntity]
Reported exception:
java.lang.StackOverflowError
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:449)
    at java.lang.StringBuilder.append(StringBuilder.java:136)
    at co.interedes.domain.UserExtra.toString(UserExtra.java:91)
    at java.lang.String.valueOf(String.java:2994)

1 Ответ

2 голосов
/ 08 ноября 2019

Это, вероятно, потому что у вас есть циклическая ссылка в ваших toString() методах. Это означает, что User печатает UserExtra и UserExtra печатает User, входя в бесконечный цикл.

Один из способов исправить это - просто удалить User из метода toString() внутриUserExtra или распечатать только идентификатор User вместо всего объекта.

...