Querydsl | NumberExpression

DoItDev·2021년 1월 28일
0
post-thumbnail

NumberExpression

- 일단 우리가 JPA를 사용한다는 것은 ORM의 특성을 사용하기 위함이다.
- 쿼리 없이 자바 개발자가 간단한 쿼리에 대한 지식만 사용을 한다면 가능하기 때문에 사용하다.
- Jpa 를 쓰다보면 수만은 쿼리를 만들어야 하는 경우가 있을 것이다. 그러다보면 쿼리를 만들다 보면 많은 통계를 내야될때도 있을 것이다.
- 예를 들어 설명은 하면 리뷰의 개수 또는 좋아요의 수를 알고 싶다고 한다.
그러면 리뷰 테이블에 저장되어있는 로우의 수를 알아야 한다.
selesct count(*) from review
이렇게 query를 사용할 수 있을 것이다.  
그럼 위의 구문을 JPA 에서는 어떻게 사용을 할까? 
JPA 에서도 간단하다. 
NumberExpressNumberExpression<?> reviewCount = review.count();
설명할것은 NuberExpression 객체를 이용한 사칙 연산 이다.
다음의 예제로 설명을 해보겠다.
NuberExpression A 와 B라는 변수가 있다.
Add
QueryJPA
select 1 + 2
from dual;
NumberExpression A , B;
A = 1;
B = 2;
NumbersExpression C = A.add(B);
List list = jpaQueryFactory
.select(c)
.from(dual)
.fetch();

Divide

QueryJPA
select 1 / 2
from dual
NumberExpression A , B;
A = 1;
B = 2;
NumberExpression C = A.divide(B);
List list =
jpaQueryFactory.select(C).from(dual).fetch();

Subtract

QueryJPA
select 1-2 from dualNumberExpression A = 1;
NumberExpression B = 2;
NumberExpression C = A.subtract(B);
List list =
jpaQueryFactory.select(C).from(dual).fetch();

Multiply

QueryJPA
select 1*2 from dualNumberExpression A = 1;
NumberExpression B = 2;
NumberExpression C = A.multiply(B);
List list =
jpaQueryFactory.select(C).from(dual).fetch();
profile
Back-End Engineer

0개의 댓글