3. JPA와 DB설정후 동작확인
a. Member classfile 생성
getter setter를 이용해도 되지만,
lombok을 이용하기 때문에 getter setter를 이용하지 않아도 된다.
@Getter @Setter로 세팅완료
b.MemberRepository classfile 생성
*Repository : entity를 찾아주는 역할을 한다.
@Repository : 스프링이 제공하는 기본 타입
@Repository의 @Component가 보인다.
기본 컴포넌트 스캔에 대상이 되는 어노테이션 중에 하나이다.
컴포넌트 스캔에 대상이 되어서 자동으로 스프링 bin에 등록이 된다.
@PersistenceContext 와 엔티티매니저
jpa를 사용하기 때문에 엔티티 매니저가 필요하다
스프링부트를 사용하기 때문에 스프링컨테이너에서 모든게 동작한다.
스프링부트가 @PersistenceContext 어노테이션에 있으면 엔티티매니저를 주입을 해준다.
엔티티매니저를 생성하는 코드가 없는데요?
spring-boot-starter-data-jpa를 라이브러리를 설치하면서 엔티티매니저가 자동생성이 되고
application.yml에 jpa설정파일을 전부 읽어서 엔티티매니저 팩토리코드가 자동으로 만들어진다. 그래서 따로 코드를 작성할 필요가 없다.
여기에서 #마주한문제 1
persistenceContext가 annotations are not allowed 라고 확인을 했다..
문제해결
설명
버전이 안맞는 것인지 처음 의심을 했으나..휴먼에러였다.
문제를 찾다보니 Member클래스에 Long.id 에 “ . ”이 있어서 삭제를 하였고
Memberclass 파일에 private.EntityManager.em에 “ . ”이라고 되어 있었다.
이것을 삭제해주고 나니 해결 완료
4. 저장하는 코드 및 조회하는 코드 작성
설명
member를 반환하면 되는데 왜 Id만 반환하지?
command와 query를 분리한다는 원칙에 의해서
저장을 하고 나면 가급적이면 사이드이펙트를 일으키는 커맨드성이기 때문에
리턴값을 거의 안만드려고 한다. 아이디정도 있으면 다음에 조회를 할 수 있으니
Id만 반환한다.
5. 작성된 저장코드를 테스트!
설명
window/Linux환경에서 테스트 단축키 [ctrl + shift + T]
좌측처럼 JUnit4 선택 + [ok버튼클릭]후
우측과 같이 test클래스파일이 만들어진다.
<위키백과 참고>
JUnit(제이유닛)
-자바 프로그래밍 언어용 유닛 테스트 프레임워크
-JUnit은 테스트 주도 개발면에서 중요하며 SUnit과 함께 시작된 XUnit이라는 이름의 유닛
테스트 프레임워크 계열의 하나
-JUnit은 컴파일 타임에 JAR로서 링크
*JAR(Java Archive, 자바 아카이브)는
-여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및
메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어 라이브러리를
배포하기 위한 소프트웨어를 패키지 파일 포맷
'신입개발자로 취업하기까지 > JPA쇼핑몰기능구축' 카테고리의 다른 글
20200505 도메인분석설계_요구사항분석_1 (0) | 2020.05.11 |
---|---|
20200501 프로젝트 환경설정_JPA와 DB설정 및 동작확인_5-3 (0) | 2020.05.09 |
20200430 프로젝트 환경설정_JPA와 DB설정 및 동작확인_5-1 (0) | 2020.05.07 |
20200429 프로젝트 환경설정_H2데이터베이스 엔진 설치_4 (0) | 2020.04.29 |
20200423 프로젝트 환경설정_view 환경설정_3 (0) | 2020.04.24 |