기록

211221 공부기록

vivi 2021. 12. 21. 04:29

1. BooleanBuilder, Booleanexpression ??

간단히 말하면 둘 다 Querydsl에서 동적 쿼리를 작성할 때 쿼리의 조건 설정인 where 뒤의 조건을 설정해 주는 것이다.

둘 다 부모에 같은 `Expression` 인터페이스를 구현한다.

생성하는 방법과 조건을 추가하는 방식에 차이가 있다.

BooleanBuilder에 or, and 등으로 expression을 추가해서 where절에 파라미터로 주는 방식,

(BooleanExpression을 BooleanBuilder로 빌드해서 사용한다는 개념인 것 같다.)

expression을 where에 null혹은 expression 값으로 where(ex1, ex2, ex3) 이런 방식으로 사용하는 방식.

 

https://jojoldu.tistory.com/394

 

[Querydsl] 다이나믹 쿼리 사용하기

안녕하세요! 이번 시간에는 Querydsl에서의 다이나믹 쿼리를 어떻게 작성하면 좋을지에 대해 진행합니다. 처음 Querydsl을 쓰시는 분들이 가장 많이 실수하는 부분이니 그럼 시작합니다! 모든 코드

jojoldu.tistory.com

1. querydsl은 where문에서 null 값이 파라미터로 올 경우 조건문에서 제외된다.

2. querydsl의 where문에서 where( ex, ex2, ex3 ) `,`는 `and` 조건으로 사용한다.

-> BooleanBuilder로 조건문을 생성하는 경우 조건문 내에서 builder에 값을 추가하므로 코드를 직관적으로 알아보기가 힘들다.

-> 조건에 맞지않으면 null 값을 리턴하고, 조건에 맞으면 BooleanExpression을 리턴하는 메서드를 생성하여

where문에서 조건들을 한눈에 확인할 수 있으므로, 가독성 좋게 쿼리를 작성할 수 있다.

 

 

2. 자바 ... 파라미터

java8의 문법으로, 동적으로 파라미터를 여러개 받을 수 있다. ...를 사용할 경우 ...를 사용한 파라미터의 순서는 맨 마지막에 와야 한다.

 

 

3. JUnit Vintage?

 

JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

JUnit Vintage은 JUnit 3, JUnit 4 기반의 테스트를 플랫폼JUnit Platform에서 실행시키기 위한 테스트 엔진TestEngine을 제공하는 모듈이다. (JUnit3,4에서 작성된 테스트를 JUnit Platform에 사용하지 않는다면 build.gradle에서 exclude 해도 됨.)

https://awayday.github.io/2017-10-29/junit5-02/

 

JUnit 5 (2)

JUnit 5는 어떻게 구성되는가

awayday.github.io

 

4. gradle에서 group에서 특정라이브러리를 제외하기

exclude 를 사용하면 된다.

// implementation(' .... '){
//	exclude group: '그룹', module: '모듈' 	
// }

dependencies {
    testImplementation ('org.springframework.boot:spring-boot-starter-test')
    {
        exclude (group: 'org.junit.vintage', module: 'junit-vintage-engine')
    }
}

 

 

5. JPA @ElementCollection, @Embeddable?

엔티티가 아닌 값 객체(Value Object)를 이용하는 방법

 

6. JPQL에서 coalesce

max( ManyToOne에서 Many를 max로 조회하면 왜 N+1 문제가 생기는지 max의 동작)

 

7. Sort 함수 정리

 

8. Object에 대하여..

 

9. @EntityGraph, 서브 쿼리,,,

 

10. SQL 공부..................