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

29. 스프링 데이터 JPA 전체적인 기능

sdafdq 2023. 10. 12. 06:48

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