contenu de l'erreur
java.lang.StackOverflowError
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:675)
at java.lang.StringBuilder.append(StringBuilder.java:208)
at java.time.LocalDate.toString(LocalDate.java:2032)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at demo.model.User.toString(User.java:19)
...
La relation entre User et UserDetail est une relation bidirectionnelle OneToOne
User
@Entity
@Data
public class User {
@OneToOne(mappedBy = "user", cascade = CascadeType.ALL)
private UserDetail userDetail;
UserDetail
@Entity
@Data
public class UserDetail implements Serializable {
@OneToOne
@JoinColumn
@MapsId
private User user;
J'ai oublié que l'ajout de @Data dans Lombok ajoutera également `` @ Getter / @ Setter '' et @ToString. .. ..
Où se passe la circulation? .. Lorsque User.toString est exécuté, DetailUser.toString est exécuté et User.toString y est appelé pour démarrer la circulation.
Évitez d'appeler DetailUser lorsque User.toString est exécuté
User
@Entity
@Data
public class User {
@OneToOne(mappedBy = "user", cascade = CascadeType.ALL)
@ToString.Exclude //★★★ Définir les champs à exclure de toString
private UserDetail userDetail;
Recommended Posts