[Spring] @ToString

Welcome to Seoyun Dev Log·2023년 4월 21일
0

Spring Boot

목록 보기
2/2

@ToString

ToString을 사용할 때 연관관계 매핑된 객체는 ToString 에서 제외해줘야한다.

  • 아래 예제로 살펴보겠다
    : 만약 양방형 매핑한 상태에서 team의 객체도 ToString으로 해줄 경우 ToString을 쓸 때 team을 계속 참조해서 무한루프가 돌아서 에러가 발생한다.
@ToString(of = {"id", "username", "age"})
package study.querydslpractice.entity;

import lombok.*;

import javax.persistence.*;

@ToString(of = {"id", "username", "age"})
@Entity
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Getter
@Table(name = "t_member")
public class Member {

    @Id
    @GeneratedValue
    @Column(name = "member_id")
    private Long id;

    @Column(name = "username")
    private String username;

    @Column(name = "age")
    private int age;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "team_id")
    private Team team;

    @Builder
    public Member(String username, int age, Team team) {
        this.username = username;
        this.age = age;
        if (team != null) {
            changeTeam(team);
        }
    }

    private void changeTeam(Team team) {
        this.team = team;
        team.getMembers().add(this);
    }
}

profile
하루 일지 보단 행동 고찰 과정에 대한 개발 블로그

0개의 댓글