스프링DataJPA는 JPA를 편리하게 사용할 수 있도록 도와주는 라이브러리
대표적인 기능은
공통 인터페이스 (CRUD)
쿼리 메서드 기능 : 메서드의 이름을 통해 쿼리를 만들어 준다.
공통 인터페이스
이렇게 공통적인 CRUD와 보통 DB들이 공통적으로 가지고 있는 기술들.
스프링DataJPA의 인터페이스
이거 외에도 공통 기능들 대부분 포함.
뭐 DB의 전체 카운트 등등..
사용법은
public interface ItemRepository extends JpaRepository<Member, Long>{
}
하면서 인터페이스로 상속받으면 된다.
마지막 타입을 <관리할클래스, id로쓸것의타입>
이렇게 해 놓으면
스프링DataJPA가 프록시로 구현체를 만들어 스프링 빈에 등록해 준다.
쿼리 메서드 기능.
메서드 이름을
findByUsernameAndAgeGreaterThan(String username, int age)
이렇게 하면
findBy 하면 select
Username 하면 where m.username= :username
AndAgeGreaterThan 하면 and m.age > :age
이렇게
자동으로 sql을 저렇게 해 준다.
findBy, readBy, queryBy, getBy 가 조회..
이고 find와 By 중간에 내용이 들어가도 된다고 한다.
countBy는 long반환 몇개 있는지
existsBy는 boolean 존재하는지
deleteBy 삭제
등등등...
이름으로 하는 게 너무 복잡해진다, 싶으면 직접 JPQL을 작성해도 된다.
@Query("select i from Item i where i.itemName like :itemName and i.price <=:price")
List<Item> findItems(@Param("itemName") String itemName, @Param("price") Integer price);
당연히 저게 우선권을 가진다.
저렇게 JPQL 뿐 아니라, sql을 넣어도 된다.
'스프링 > 6. 스프링 DB-2' 카테고리의 다른 글
32. 스프링데이터JPA 적용 2 (0) | 2023.10.12 |
---|---|
31. 스프링DataJpa 적용1 (0) | 2023.10.12 |
29. 스프링 데이터 JPA 전체적인 기능 (0) | 2023.10.12 |
28. 스프링 데이터 JPA (0) | 2023.10.11 |
27. JPA 예외 (0) | 2023.10.11 |