반응형
학습목표
jpa에 대해서 알아보자.
객체지향 패러다임을 경험해보자.
피드백
Entity에 기본생성자 접근제어자를 protect로 지정해주세요.
Entity에 기본 생성자가 필요합니다.
이유는 JPA는 DB 값을 객체 필드에 주입할 때 기본 생성자로 객체를 생성한 후 Reflection API를 사용하여 값을 매핑하여 하용하기 때문입니다.
그렇다면 기본생성자를 public, protect 둘 중 어떤 접근제어자를 선택해야 될까요?
기본생성자는 spring data에서 사용하도록 하고 코드를 작성할때는 이용하지 못하도록 protect를 사용하는게 좋습니다.
가급적 hiberate 어노테이션 사용하지 말고 jpa 어노테이션을 이용해주세요.
@UpdateTimestamp 에서 @LastModifiedDate 로 바꾸어주세요.
jpa 구현체로 hiberate를 많이 이용하고 있지만 인터페이스에 의존을 하게 되면 구현체 변경이 필요할때 많은 부분을 고치지 않아도 된다는 장점이 있습니다.
Optional<User> javajigi = userRepository.findByUserId("javajigi");
assertThat(javajigi).isEmpty();
이렇게 옵셔널안에 비어있는지 값이 있는지 체크할 수도 있어요~
https://github.com/next-step/jwp-qna/pulls?q=is%3Apr+is%3Aclosed+author%3Alsm7179
반응형
'우아한테크캠프Pro3기' 카테고리의 다른 글
1주차 - TDD (0) | 2022.01.05 |
---|
댓글