Spring Data JPA 에서는 간단한 CRUD기능을 공통으로 처리하는 인터페이스를 제공합니다.
새로운 레코드 생성, 불러오기 ,COUNT세기 등 간단한 CRUD기능들을 별도로 구현하지 않아도 제공되는 메소드를 호출하기만 한다면 사용 가능합니다.
import com.squarecross.photoalbum.domain.Album;
import org.springframework.data.jpa.repository.JpaRepository;
public interface AlbumRepository extends JpaRepository<Album, Long> {
}
Domain 폴더 안에 만들었던 Album Entity와 albumId(pk) 타입인 Long을 입력해주었습니다.
어떤 Entity를 위한 Repository인지 정보가 있기 때문에 albumRepository에서 작업 시 어떤 테이블에 데이터를 넣어야할지 Spring이 알아요.
나중에 AlbumRepository를 다른 코드에서 사용해서 DB작업을 하게 될 경우 아래처럼 구현하게 돼요.
JpaRepository에서 기본으로 정의되어있고 상속받은 메서드들이라 별도의 구현 없이 사용이 가능합니다.
@Autowired
AlbumRepository albumRepository;
//myAlbum 엔티티를 테이블에 저장
albumRepository.save(myAlbum);
//모든 데이터 조회
albumRepository.findAll();
//앨범 아이디가 10인 레코드 DB에서 삭제
albumRepository.deleteById(10);
때로는 기본적인 기능이 부족해서 사용자가 필요한 기능들을 직접 추가해야될 때도 있습니다.
예를들어 앨범명으로 앨범 목록을 조회하고싶다면
public interface AlbumRepository extends JpaRepository<Album, Long> {
List<Album> findByAlbumName(String name);
}