반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- JPA
- 코테공부
- nestjs스터디
- nestjs
- 자바공부
- JPA스터디
- 스프링부트
- 코테준비
- JPA공부
- Axon framework
- 기술공부
- 프로그래머스
- Kafka
- JPA 공부
- 스프링공부
- 기술면접공부
- K8S
- 스프링부트공부
- 알고리즘공부
- querydsl
- DDD
- 카프카
- Flutter
- 플러터 개발
- 플러터 공부
- 스프링 공부
- nestjs공부
- 자료구조공부
- JPA예제
- 스프링
Archives
- Today
- Total
DevBoi
[Jpa] Querydsl build Setting 본문
반응형
QueryDsl 프로젝트를 빌드할때 오류가 났다. 사유는 Qclass의 중복 생성시도로 인한 오류이다.
아래와 같이 세팅해서 해결했다.
별건아니고 그냥 의존성 주입과 그래들 과정에서 번거롭게 또 삽질 싫어서 남겨둔다.
나는 쿼리 팩토리를 별도 빈으로 생성해서 서비스에서 주입 받아서 사용했다.
별도 레포지토리는 비즈니스 로직이 복잡할때만 ...할까 하다가
파일이 많아지면 신규 모듈 개발할때 귀찮아서 우선 서비스에서 끝냈다.
plugins {
id 'org.springframework.boot' version '3.1.2'
id 'io.spring.dependency-management' version '1.1.2'
id 'java'
}
group = 'com.boiler.core'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
testCompileOnly {
extendsFrom testAnnotationProcessor
}
}
repositories {
//mavenLocal()
mavenCentral()
// Spring GraphQl is not released yet, add spring snapshot repo
maven { url 'https://repo.spring.io/milestone' }
maven { url 'https://repo.spring.io/snapshot' }
}
dependencies {
//spring graphql
//implementation 'org.springframework.boot:spring-boot-starter-graphql'
// // Jakarta EE 10
// implementation 'jakarta.persistence:jakarta.persistence-api:3.1.0'
// implementation 'jakarta.inject:jakarta.inject-api:2.0.1'
// implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1'
//Spring Boot
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
//configure Lombok for compile java/ compile tests
compileOnly 'org.projectlombok:lombok:1.18.28'
annotationProcessor 'org.projectlombok:lombok:1.18.28'
testCompileOnly 'org.projectlombok:lombok:1.18.28'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.28'
// QueryDSL for JPA
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
implementation 'com.querydsl:querydsl-apt:5.0.0:jakarta'
annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final'
implementation 'org.mapstruct:mapstruct:1.4.2.Final'
//test
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
implementation 'org.mariadb.jdbc:mariadb-java-client:3.1.4'
}
package com.boiler.core.backend.config;
import com.querydsl.jpa.JPQLTemplates;
import com.querydsl.jpa.impl.JPAQueryFactory;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import java.util.function.Supplier;
@Configuration
@EnableJpaRepositories(basePackages = "com.boiler.core")
@RequiredArgsConstructor
public class QuerydslConfig {
private final EntityManager entityManager;
@Bean
public JPAQueryFactory jpaQueryFactory(EntityManager entityManager) {
return new JPAQueryFactory(entityManager);
}
}
@Service
@RequiredArgsConstructor
@Transactional
public class MemberService {
private final JPAQueryFactory queryFactory;
private final MemberRepository memberRepository;
Member postMember(Member member){
return memberRepository.save(member);
}
public Member getMember(String memberId) {
return queryFactory.select(member)
.from(member)
.where(member.memberId.eq(memberId)).fetchOne();
}
뭐 다른 방법도 많겠지만 우선 이런 틀로 프로젝트 살을 붙이자
반응형
'Develop > [JPA]' 카테고리의 다른 글
[JPA] Querydsl & Paging (0) | 2023.09.02 |
---|---|
[JPA] JPAUpdateClause 사용 (0) | 2023.09.02 |
[JPA] ElementCollection (0) | 2023.08.28 |
[JPA] QueryDsl LeftJoin,SelfJoin (0) | 2023.08.19 |
[JPA] QueryDsl 여러 기능 정리 (0) | 2023.08.19 |