프로젝트 진행중 아래와 같은 오류가 발생했습니다.

Member.class
@Entity
@Getter @Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@ToString(of = {"id", "username", "age"})
@NamedQuery(
name="Member.findByUsername",
query="select m from Member m where m.username = :username")
@NamedEntityGraph(name = "Member.all", attributeNodes =
@NamedAttributeNode("team"))
public class Member extends BaseEntity {
@Id
@GeneratedValue
@Column(name = "member_id")
private Long id;
private String username;
private int age;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "team_id")
private Team team;
@Override
public String toString() {
return "Member{" +
"id=" + id +
", username='" + username + '\'' +
", age=" + age +
", team=" + team +
'}';
}
Team.class
@Entity
@Getter @Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@ToString(of = {"id", "name"})
public class Team extends BaseEntity {
@Id
@GeneratedValue
@Column(name = "team_id")
private Long id;
private String name;
@BatchSize(size = 13)
@OneToMany(mappedBy = "team")
private List<Member> members = new ArrayList<>();
public Team(String name) {
this.name = name;
}
@Override
public String toString() {
return "Team{" +
"id=" + id +
", name='" + name + '\'' +
", members=" + members +
'}';
}
}
다대일 양방향 관계로 설정을 하고, 각각의 Entity에서 자동 생성으로 toString()을 생성했습니다.
이런 경우, 순환 참조가 되며 무한 루프에 빠지게 됩니다.
", members=" + members +
", team=" + team +
toString을 자동 생성하더라도, 이후에 양방향 관계에 있는 경우 참조값이 객체인 경우 삭제합니다.