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对象。
我已经创建了一个 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对象。