Entity와 Repository
- ★ Entity클래스와 Entity Repository는 같은 패키지에 위치해야 함!
- Entity: @Entity를 선언해서 생성
- Repository:
public interface PostsRepository extends JpaRepository<Entity 클래스, PK타입>{
}
Entity 클래스는 Setter를 만들지 않는다
- @Getter만 선언
- @Setter 선언 시, 해당 Entity 클래스의 인스턴스 값들이 언제, 어디서 변하는지 명확히 나타나지 않음
ex) 목적과 의도를 명확히 나타내는 메소드를 추가해야 함
public class Order {
private boolean status;
public void cancleOrder() {
this.status = false;
}
}
public void 주문서비스_취소이벤트() {
order.cancleOrder();
}
생성자를 통한 객체 생성의 문제점
- 현재 채워야하는 필드가 무엇인지 명확히 알 수 없음
- 파라미터가 정확히 어느 필드에 대입되는지 모름
ex) 객체를 생성하는 사람은 코드를 실행하기 전까지 문제를 알 수 없다.
public Example(String a, String b) {
this.a = a;
this.b = b;
}
new Example(b, a);
빌더 패턴의 장점
- 어느 필드에 어떤 값이 들어가야하는지 명확히 알 수 있다.
- @Builder는 생성자 상단에 선언해주면, 그 생성자에 포함된 필드에 대해 빌더 메소드를 자동 생성
Example.builder()
.a(a)
.b(b)
.build();
'학습 > Java' 카테고리의 다른 글
[java] 템플릿 엔진 / SSR & CSR / JSP와 Mustache / 정적파일 (0) | 2020.02.10 |
---|---|
[java] 테스트를 도와주는 JUnit / assertJ / h2 (0) | 2020.02.09 |
[java] Shy Code를 깨트리는 Lombok의 @Data 어노테이션 (0) | 2020.01.23 |
[java] war파일 import하여 코드 수정한 뒤, 다시 export하기 (0) | 2019.05.29 |
[java] 객체지향 프로그래밍의 4가지 특징 (0) | 2019.05.25 |
댓글