스프링/6. 스프링 DB-2

30. 스프링DataJPA 주요 기능

sdafdq 2023. 10. 12. 07:07

스프링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