반응형
QueryDSL 세팅법
스프링 부트 3버전 이상을 기준으로 한다.
dependencies {
// ...
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}
QueryDSL 세팅 객체를 만들어준다.
@Configuration
public class QuerydslConfig {
@PersistenceContext
private EntityManager entityManager;
@Bean
public JPAQueryFactory jpaQueryFactory() {
return new JPAQueryFactory(entityManager);
}
}
QueryDSL 사용하는 Repository 구조 잡기
밑의 참고 링크에 걸려있는 사진을 참고했다.
public interface TodoCardRepositoryCustom {
List<TodoCard> findAllByOrderByCreatedAtDesc();
}
import static sparta.todoapp.domain.todocard.entity.QTodoCard.todoCard;
@Repository
@RequiredArgsConstructor
public class TodoCardRepositoryImpl implements TodoCardRepositoryCustom {
private final JPAQueryFactory queryFactory;
@Override
public List<TodoCard> findAllByOrderByCreatedAtDesc() {
return queryFactory.selectFrom(todoCard)
.orderBy(todoCard.createdAt.desc())
.fetch();
}
}
public interface TodoCardRepository extends JpaRepository<TodoCard, Long>, TodoCardRepositoryCustom {
}
참고 링크
반응형
'TIL ✍️' 카테고리의 다른 글
23년 12월 20일(수요일) - 56번째 TIL : 레포지토리 단에서 예외 발생 (0) | 2023.12.20 |
---|---|
23년 12월 19일(화요일) - 55번째 TIL : 영속성 전이 및 고아 객체 (0) | 2023.12.19 |
23년 12월 15일(금요일) - 53번째 TIL (0) | 2023.12.15 |
23년 12월 14일(목요일) - 52번째 TIL (0) | 2023.12.14 |
23년 12월 13일(수요일) - 51번째 TIL (1) | 2023.12.13 |