Java OneToOne用户Jhipster关系
我已经创建了一个UserExtra实体,它与用户实体的关系如下 User.javaJava OneToOne用户Jhipster关系,java,spring-data-jpa,jhipster,Java,Spring Data Jpa,Jhipster,我已经创建了一个UserExtra实体,它与用户实体的关系如下 User.java public class User extends AbstractAuditingEntity implements Serializable { ... @OneToOne(mappedBy = "user") @JsonIgnoreProperties(value = "user") private UserExtra userExtra; public class UserExtr
public class User extends AbstractAuditingEntity implements Serializable {
...
@OneToOne(mappedBy = "user")
@JsonIgnoreProperties(value = "user")
private UserExtra userExtra;
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;
...
}
UserExtra.java
public class User extends AbstractAuditingEntity implements Serializable {
...
@OneToOne(mappedBy = "user")
@JsonIgnoreProperties(value = "user")
private UserExtra userExtra;
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)
这可能是因为在
toString()
方法中有一个循环引用。这意味着User
打印UserExtra
,而UserExtra
打印User
进入一个永无止境的循环
解决此问题的一种方法是从
UserExtra
中的toString()
方法中删除User
,或者让它只打印User
ID而不是整个对象。这可能是因为toString()
方法中有一个循环引用。这意味着User
打印UserExtra
,而UserExtra
打印User
进入一个永无止境的循环
解决此问题的一种方法是从
UserExtra
中的toString()
方法中删除User
,或者让它只打印User
ID而不是整个对象。您是如何在UserExtra中实现toString()的?这就是堆栈跟踪中显示的无限递归的原因。您是如何在UserExtra中实现toString()的?这就是堆栈跟踪中显示的无限递归的原因