3. JPADB설정후 동작확인

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.ymljpa설정파일을 전부 읽어서 엔티티매니저 팩토리코드가 자동으로 만들어진다. 그래서 따로 코드를 작성할 필요가 없다.

 

여기에서 #마주한문제 1

persistenceContextannotations are not allowed 라고 확인을 했다..

문제해결

설명

버전이 안맞는 것인지 처음 의심을 했으나..휴먼에러였다.

문제를 찾다보니 Member클래스에 Long.id “ . ”이 있어서 삭제를 하였고

Memberclass 파일에 private.EntityManager.em“ . ”이라고 되어 있었다.

이것을 삭제해주고 나니 해결 완료

 

4. 저장하는 코드 및 조회하는 코드 작성

설명

member를 반환하면 되는데 왜 Id만 반환하지?

commandquery를 분리한다는 원칙에 의해서

저장을 하고 나면 가급적이면 사이드이펙트를 일으키는 커맨드성이기 때문에

리턴값을 거의 안만드려고 한다. 아이디정도 있으면 다음에 조회를 할 수 있으니

Id만 반환한다.

 

5. 작성된 저장코드를 테스트!

설명

window/Linux환경에서 테스트 단축키 [ctrl + shift + T]

좌측처럼 JUnit4 선택 + [ok버튼클릭]

우측과 같이 test클래스파일이 만들어진다.

 

<위키백과 참고>

JUnit(제이유닛)

-자바 프로그래밍 언어용 유닛 테스트 프레임워크

-JUnit 테스트 주도 개발면에서 중요하며 SUnit과 함께 시작된 XUnit이라는 이름의 유닛

테스트 프레임워크 계열의 하나

-JUnit은 컴파일 타임에 JAR로서 링크

 

*JAR(Java Archive, 자바 아카이브)

-여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스(텍스트, 그림 등)  

메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어 라이브러리를

배포하기 위한 소프트웨어를 패키지 파일 포맷

 

 

+ Recent posts