@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Entity
public class Member {
}
@Setter를 사용하지 않기
그 의도가 분명하지 않고 객체를 언제든지 변경할 수 있는 상태가 됨
값 변경이 필요한 경우 의미 있는 메서드를 생성하여 사용하는 것이 좋다
@NoArgsConstructor(access = AccessLevel.PROTECTED) 사용하기
JPA 구현체는 엔티티의 기본 생성자를 통해 프록시 객체를 생성하는데, 이 때 접근 권한이 private이면 프록시 객체를 생성할 수 없다. protected로 하면 프록시 객체생성 가능
아무런 값도 갖지 않는 의미 없는 객체의 생성을 막게 됩니다. 즉 무분별한 객체 생성에 대해 한번 더 체크
생성자에 @Builder붙이기 + @AllArgsConstructor쓰지 않기
@Data사용x, 필요한 개별 어노테이션 사용하기
@Data는 @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 설정
하지만 lombok의 설정들(ex. callSuper, includeFieldNames, exclude)을 지정할 수 없다
@ToString 쓸때 연관관계 매핑된 엔티티 필드는 제거하기
연관 관계 필드를 toString()에서 사용하면 무한루프 문제가 발생할 수 있습니다.
이는 연관된 엔티티 객체가 다시 현재 엔티티를 참조하게 되어 무한 루프가 발생하기 때문입니다.
'Spring > DB연동' 카테고리의 다른 글
| entity에서 원시타입 vs Wrapper클래스 (0) | 2025.02.22 |
|---|---|
| JPA Entity에 Validation (0) | 2025.02.22 |
| JPA Entity 관련 01 (0) | 2025.01.17 |
| JPA 에러 모음 01 (0) | 2025.01.16 |
| JPA 설정 01 (0) | 2025.01.14 |