개발 공부/Spring

사이드 프로젝트 - JPA Repository / Service

공부하는개발자_ 2023. 12. 8. 13:52

 

 

Spring Data JPA 에서는 간단한 CRUD 기능을 공통으로 처리하는 인터페이스를 제공

새로운 레코드 생성, 불러오기, Count 세기 등 간단한 CRUD기능들은 별도로 구현하지 않아도 제공되는 메소드를 호출하기만 한다면 사용 가능

 

 

위의 코드에서 JpaRepository를 상속 받았는데 , 제네릭 정보 안에 Domain 폴더 내에 만들었던 Album Entity와 Album ID(PK)타입인 Long을 입력하면 어떤 Entity를위한 Repository인지 정보가 있기 때문에 albumRepository에서 작업시 어떤 테이블에 데이터를 넣어야 할지 Spring이 알게 됨

 

 

 

사용자가 직접 정의하는 CRUD메서드

 

@Repository 어노테이션을 추가해서 스프링 빈으로 등록하여 IoC에서 관리하게 함

 

@Service 어노테이션을 추가해서 빈으로 등록하여 IoC에서 관리하게 함

 

 

 

@Autowired 어노테이션으로 등록된 빈을 꺼내와 사용 할 수 있음

 

1. AlbumRepository에서 Album ID로 조회했을 때 찾지 못해서 반환이 되지 않는 경우를 대비해서 Optional<Album> 리턴값을 갖는다

2. Optional<album> res = albumRepository.findById(albumId); 로 먼저 Optional값을 반환 받는다

3. isPresent()로 값이 있는지 확인을 먼저 함

 a. 있는 경우 res.get()으로 Album 엔티티 반환

 b. 없는 경우 EntityNotFoundException을 에러 메시지와 함께 throw해 줌