SpringDataJPA는 구현체가 아니라 인터페이스를 만든다.
그러면 또 프록시가 구현체를 만들어 준다.
SpringDataJPA는 이름으로 쿼리를 자동으로 생성해준다.
예를 들어
findByEmailAndName()
이렇게 하면
select m from Member m where m.email=? and m.name=?
이렇게 email과 name
findBy 는 select
이렇게 JPQL을 생성해 줌.
인터페이스에 쿼리작성도 가능하다.
메소드에
@Query("select u from User u where u.emailAddress=?"
User findByEmailAddress(String emailAddress);
또, @Query(value="sql문", nativeQurey=true)
하면 네이티브 SQL문도 작성이 가능.
당연히 바인딩 됨.
주로 백엔드 기술 스택
JPA, 하이버네이트는 SpringDataJPA 때문에 쓰는거고, 그 중 동적 쿼리 부분은 QueryDSL, 너무 복잡해 그냥 SQL이 나을 때는 그냥 JDBC템플릿
그 외에 스프링 MVC
베이스로 스프링, 스프링 부트
이건 이제 도메인 클래스가 결국 중요하게 됨.
스프링DataJPA는
아래 기술들을 편리하게 쓰도록 도와주는 기술.
그래서 DB, JDBC, 하이버네이트, JPA 다 잘 알아놔야 함.
내가 작성한 JPQL이 어떤 쿼리로 생성될 지도 알아야 함.
'스프링 > 6. 스프링 DB-2' 카테고리의 다른 글
31. 스프링DataJpa 적용1 (0) | 2023.10.12 |
---|---|
30. 스프링DataJPA 주요 기능 (0) | 2023.10.12 |
28. 스프링 데이터 JPA (0) | 2023.10.11 |
27. JPA 예외 (0) | 2023.10.11 |
26. JPA 적용 (0) | 2023.10.11 |