본문 바로가기
우아한테크캠프Pro3기

2주차 JPA

by 방구석개발자 2022. 7. 17.
반응형

학습목표

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 

 

GitHub - next-step/jwp-qna: QnA 서비스

QnA 서비스. Contribute to next-step/jwp-qna development by creating an account on GitHub.

github.com

 

반응형

'우아한테크캠프Pro3기' 카테고리의 다른 글

1주차 - TDD  (0) 2022.01.05

댓글