[Spring Boot] Lombok의 Setter에서 Primary Key 값을 변경하지 않게 하는 방법

김광일·2024년 9월 25일

SpringBoot

목록 보기
12/19
post-thumbnail

Lombok을 통해서 Getter과 Setter을 anotation으로 지정하면, 따로 구현해주지 않아도 되는 장점이 있다.

| 예시

@Getter
@Setter
public class User {
	
    @Id
	private Long id;
    
    private String name;
}

그러나 Primary Key로 사용되는 Long type의 id는 setter을 제공해서는 안된다.


그렇기에, Lombok의 Setter에서 Primary Key 값을 변경하지 않게 하는 방법에 알아보면 다음과 같다.

@Getter
@Setter
public class User {
	
    @Id
    @Setter(AccessLevel.NONE) 
	private Long id;
    
    private String name;
}

@Setter(AccessLevel.NONE라는 anotation을 해당 멤버에 적용하게 되면, 해당 멤버는 setter로 접근할 수 없게 된다.

| AccessLevel의 종류

  1. PROTECTED: 같은 패키지나 상속받은 클래스에서 접근 가능.
  2. PUBLIC: 어디서든 접근 가능.
    3 PRIVATE: 클래스 내부에서만 접근 가능.
  3. NONE: 접근자 메서드를 생성하지 않음.
profile
안녕하세요, 사용자들의 문제 해결을 중심으로 하는 프론트엔드 개발자입니다. 티스토리로 전환했어요 : https://pangil-log.tistory.com

0개의 댓글