lombak 특정 멤버 setter 제외 방법

Jang990·2023년 2월 1일
0
post-custom-banner

lombak 특정 멤버 setter 제외 방법

롬복의 @Data 어노테이션은 @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한 번에 설정해준다.

웬만하면 @Data 보다는 각각의 어노테이션을 따로 붙혀주는 것이 좋다.

만약 엔티티의 ID를 MySQL의 Auto Increment같은 기능을 사용하여 넣는다면 @ID 어노테이션이 붙어있는 멤버의 값을 set할 필요가 없을 것이다.


그럴때는 다음과 같이 멤버 변수에 @Setter 어노테이션을 붙이고 AccessLevel을 설정해주어서 접근 제한자를 설정하면 된다.(@Getter 또한 똑같이 적용이 가능하다.)

@Data
@Entity
public class UserSubject {
	
	@Setter(AccessLevel.NONE)
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private long usId; // DB에서 설정하기 때문에 세팅할 필요 X
	...
}

허용되는 access level은 PUBLIC, PRIVATE, PROTECTED, PACKAGE, NONE이 있고 따로 명시해주지 않는다면 기본적으로 접근 제한자는 PUBLIC이 된다. 접근 자체를 막고 싶다면 NONE으로 설정해주면 된다.

profile
공부한 내용을 적지 말고 이해한 내용을 설명하자
post-custom-banner

0개의 댓글