OneToOne 用户 Jhipster 关系

OneToOne User Jhipster relationship

我已经创建了一个 UserExtra 实体,它与 User 实体具有这样的一对一关系

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.WhosebugError
    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)

这可能是因为您的 toString() 方法中有循环引用。这意味着 User 打印 UserExtra,而 UserExtra 打印 User 进入一个永无止境的循环。

解决此问题的一种方法是简单地从 UserExtra 内的 toString() 方法中删除 User 或让它仅打印 User ID 而不是整个 ID对象。