개발자

jpa entity에 setter 사용에 대해 질문드립니다

2024년 11월 06일조회 29

setter 사용은 지양하라해서 사용하지 않으려 하는데 생각해보니 결국 테이블의 데이터를 바꿔야 할때가 있는데 그럴때는 setter를 사용하지 않으면 어떻게 하는건가요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

MB😍 / JPA🤮님의 프로필 사진

set이 아닌 update로 시작하는 메서드 생성 String name을 변경해야되는 경우 updateName();

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 11월 06일

JPA에서는 일반적으로 엔티티의 상태를 변경할 때는 setter 대신 '의미있는 메서드'를 사용하도록 권장됩니다. 엔티티 클래스 내부에 비즈니스 로직을 관리하는 메소드를 추가하여 이를 통해 데이터 변화를 처리합니다. 예시로, User라는 Entity가 있고 그 안에 age라는 필드가 있다고 가정해봅시다. 이 경우, 나이를 직접적으로 변경하는 것이 아니라 생일이 지나게 되면 1살을 더하게 될 것입니다. 따라서 'birthdayPassed()' 같은 메서드를 만들어 이 안에서 age = age + 1과 같은 로직을 구현합니다. 이렇게 하면 객체의 상태 변경로직이 해당 객체 내부에 캡슐화되므로 객체지향적인 설계원칙을 지킬 수 있습니다. 추가적으로 각 메소드가 하는 일이 명확해져 코드의 가독성도 향상되며, 오류 발생 시 추적하기도 용이해집니다. 아래는 예제 코드입니다: ```java @Entity public class User { ... private int age; public void birthdayPassed() { this.age += 1; } } ``` 이렇게 setter를 직접 쓸 필요없이, 엔티티의 상태값을 변경하는 의미있는 메소드를 정의해서 사용합니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!