Spring Data JPA
- JPA : Java 에서 RDB를 사용하기 위해 정해 놓은 표준 스펙(명세)
- Hibernate ORM : JPA 구현체. 실제 사용하는 API
- Spring Data JPA : Hibernate ORM을 Spring에서 더 쉽게 사용할 수 있도록 해주는 모듈
- java-rdb (ORM) 매핑하기 : @Entity (@Column @Id 등 관계설정)
- Repository 인터페이스 구현
- 기본 메서드(CRUD 등)은 Spring data JPA에서 기본으로 제공 extends JpaRepository<Entity클래스명, pk타입>
- 커스텀 메서드(쿼리)만 인터페이스 내에 작성 → 쿼리는 jpa에서 변경해줌
- JPQL 객체 지향 쿼리 사용 : 엔티티 클래스의 객체를 대상으로 객체를 조회 → 쿼리 처리는 jpa에서 함
public interface CoffeeRepository extends JpaRepository<Coffee, Long> {
Optional<Coffee> findByCoffeeCode(String coffeeCode);
Optional<Coffee> findByCoffee(long coffeeId);
//@Query(value = "SELECT * FROM COFFEE WHERE coffee_Id = :coffeeId", nativeQuery = true) //sql 기준
@Query(value = "SELECT c FROM Coffee c WHERE c.coffeeId = :coffeeId")
// Coffee 클래스명, coffeeId Coffee 클래스의 필드명
//c :Coffee 클래스의 별칭. SQL에서 사용하는 ‘*’이 아니라 ‘c’로 모든 필드를 조회하는 것
// select생략가능 @Query(value = "FROM Coffee c WHERE c.coffeeId = :coffeeId")
}