1. build.gradle 라이브러리 추가
// hibernate 버전 오류 조절하기
ext["hibernate.version"] = "5.6.5.Final"
//JPA
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
//Querydsl
implementation 'com.querydsl:querydsl-jpa'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
// git에서 Q클래스 지우기
clean {
delete file('src/main/generated')
}
2.
gradle -> Tasks -> bulid -> clean
gradle -> Tasks -> other -> compileJava
Q 타입 생성 확인은
build -> generated -> sources -> annotationProcessor -> java/main
Q 타입 import 불가할 경우
File -> Project Structure -> Modules 에서
annotationProcessor 를 Source 로 변경
3.
Repository 에서
EntityManager / JPAQueryFactory 선언 후
생성자로 주입
(JPAQueryFactory도 Config에서 Bean으로 주입해도 됨)
private final EntityManager em;
private final JPAQueryFactory query;
public MemberRepositoryImpl(EntityManager em) {
this.em = em;
this.query = new JPAQueryFactory(em);
}
4.
Config로 Bean 생성, 주입
@Configuration
@RequiredArgsConstructor
public class QuerydslConfig {
private final EntityManager em;
private final MemberJpaRepository memberJpaRepository;
@Bean
public MemberRepository memberRepository() {
return new MemberRepositoryImpl(em, memberJpaRepository);
}
}
5.
Application에서 import 후 사용
@Import(QuerydslConfig.class)
@SpringBootApplication
public class FanApplication {
public static void main(String[] args) {
SpringApplication.run(FanApplication.class, args);
}
}
6.
BooleanBuilder 생성 후,
조건 추가
query에 집어 넣어서 사용
@Override
public List<Member> findByIdPwd(MemberDto memberDto) {
BooleanBuilder builder = new BooleanBuilder();
builder.and(member.id.like(memberDto.getMemberId())
.and(member.password.like(memberDto.getPassword())));
return query.select(member)
.from(member)
.where(builder)
.fetch();
}
수정할 거 있으면 나중에 수정함
728x90
'혼자서 개발새발' 카테고리의 다른 글
JPA ) QueryDsl , Pageble 을 이용해 페이징을 하다! (0) | 2023.01.04 |
---|---|
게시판을 손수 페이징해보자 ^^! (0) | 2022.12.22 |
Spring) 게시판 보완(이전 글, 다음 글, 내 글에만 수정, 삭제 보이기 등) (0) | 2022.11.23 |
Spring) 댓글 기능 구현 - DB Table, DTO, DAO, Service, Mapper 만들기 (0) | 2022.11.23 |
Spring) 게시판 글 수정을 만들어보자! (0) | 2022.11.23 |