JPA 간단하게 정리
Repository 설계하기
Spring Data JPA에서는 엔티티 매니저를 직접 이용해 코드를 작성하지 않아도 됨.
대신 Data Access Object의 역할을 하는 Repository 인터페이스를 설게하여 사용.
JpaRepository를 상속받는 Repository를 작성
2개의 제네릭 타입을 사용 후 첫 번째에는 엔티티 타입 클래스를 두 번째는 기본키 타입을 넣어줌.
save 메소드
void delete(T entity)
count()
Iterable<T> findAll()
@SpringBootTest
@TestPropertySource
@Autowired
@DisplayName
쿼리메소드 89(p.g 참고)
@Query 어노테이션
@Param 어노테이션을 활용하여 파라미터로 넘어온 값을 JPQL에 들어갈 변수로 지정.
Querydsl
: 어노테이션 안에 JPQL문법으로 문자열을 입력하기 때문에 잘못 입력하면 컴파일 시점에 에러를 발견할 수 없음
이를 보완하는게 Querydsl
Querydsl 장점
1. 고정된 SQL문이 아닌 조건에 맞게 동적으로 쿼리 생성 가능
2. 비슷한 쿼리를 재사용할 수 있으며 제약 조건 조립 및 가독성을 향상시킬 수 있음
3. 문자열이 아닌 자바 소스코드로 작성하기 때문에 컴파일 시점에 오류를 발견할 수 있음
4. IDE의 도움을 받아서 자동 완성 기능을 이용할 수 있기에 생산성을 향상 시킬 수 있음
JPQL에서 문자열로 작성하던 쿼리를 자바 소스로 이용한 것.
관련메소드
fetch()
fetchOne
fetchFirst
fetchCount
fetchResults
QueyrDslPredicateExecutor 인터페이스
BooleanBuilder : 쿼리에 들어갈 조건을 만들어주는 빌더.