개발하고 있는 프로젝트에 Querydsl을 적용해보려고 테스트 중입니다.
690
작성한 질문수 2
@Test
void contextLoads() {
JPAQueryFactory query = new JPAQueryFactory(em);
QHello qHello = QHello.hello; //Querydsl Q타입 동작 확인
List<Hello> result = query
.selectFrom(qHello).fetch();
System.out.println("result = " + result);
}
import java.math.BigDecimal;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
import javax.persistence.Column;
import javax.persistence.PostLoad;
import javax.persistence.PrePersist;
import javax.persistence.PostPersist;
import javax.persistence.PreUpdate;
import javax.persistence.PostUpdate;
import javax.persistence.PreRemove;
import javax.persistence.PostRemove;
// import org.springframework.beans.BeanUtils;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.Builder;
@Entity
@Table(name="EDU_ACNT") //--PRIMARY
@Getter
@NoArgsConstructor // (access = AccessLevel.PROTECTED) // AccessLevel.PUBLIC
@EqualsAndHashCode // (of = {"email","name"}, callSuper = true, onParam = @__(@NonNull))
@ToString //(exclude = "password") // exclude 속성을 사용하면, 특정 필드를 toString() 결과에서 제외
public class EduAcnt {
@Id // Integer
@Column(name = "ACNT_NO", nullable = false)
private Integer acntNo; //--null
@Column(name = "BALANCE", precision = 18, scale = 0, nullable = false)
private BigDecimal balance; //--null
@Builder
public EduAcnt(Integer acntNo, BigDecimal balance) {
this.acntNo = acntNo;
this.balance = balance;
}
//----------------------------------------------------
// Load/Persist/Update/Remove(조회/신규/수정/삭제)
// Entity Pre/Post(이전/이후) 처리에 대한 정의(PreLoad는 없음)
// * DB의 Trigger와 비슷한 JPA기능
//----------------------------------------------------
@PostLoad
public void onPostLoad() {
}
@PrePersist
public void onPrePersist() {
}
@PostPersist
public void onPostPersist() {
}
@PreUpdate
public void onPreUpdate() {
}
@PostUpdate
public void onPostUpdate() {
}
@PreRemove
public void onPreRemove() {
}
@PostRemove
public void onPostRemove() {
}
}
답변 1
0
안녕하세요. 김기정님
Querydsl 설정이 버전이나 환경에 따라서 조금씩 달라집니다.
다음을 참고해주세요.
plugins {
id 'org.springframework.boot' version '2.6.5'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
ext["hibernate.version"] = "5.6.5.Final"
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
//JdbcTemplate 추가
//implementation 'org.springframework.boot:spring-boot-starter-jdbc'
//MyBatis 추가
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
//JPA, 스프링 데이터 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"
//H2 데이터베이스 추가
runtimeOnly 'com.h2database:h2'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
//테스트에서 lombok 사용
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
}
tasks.named('test') {
useJUnitPlatform()
}
//Querydsl 추가, 자동 생성된 Q클래스 gradle clean으로 제거
clean {
delete file('src/main/generated')
}
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
77
1
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
109
3
MemberRepository 구현체
0
61
1
pdf 표현 질문드립니다.
0
64
1
로그가 남지 않는 문제.
0
88
1
테스트 라이브러리가 강의는 junit4가 맞나요??
0
73
2
pdf 파일과 차이점이 있는 것같은데 문제 없나요?
0
73
2
@PrePersist, @PreUpdate 호출 시점 질문드립니다.
0
95
2
Sort 인터페이스는 잘 사용 안하나요?
0
52
1
스캔대상 질문드립니다.
0
46
1
하이버네이트6에서의 최적화에 이은 질문
0
88
1
save() vs saveAndFlush DB 통신 횟수
0
55
1
순수 JPA 리포지토리 코드 수정부분
0
87
2
bulk연산 후 flush하는 이유를 모르겠어요
0
153
3
bulk insert 질문입니다.
0
185
2
교만했던 것 같아요.
0
147
1
RESTful 강의는 안하시는 건지 궁금합니다.
0
151
2
동적 테이블에 대한 질문
0
87
1
영속성 전이와 연관관계
0
132
2
강의 10:25 질문
0
75
1
단건 update 질문
0
98
2
엔티티 와 도메인의 경계
0
129
1
UsernameOnlyDto 타입 type mismatch 오류
0
122
1
Projection 개념과 데이터 전달과정에 대해 질문 있습니다.
0
137
1





