QueryDSL

    [Querydsl] n시간 이전 데이터 삭제

    @Transactional fun exampleMethod(): Long { var date = LocalDateTime.now() date = date.minusHours(1) return queryFactory .delete(table_name) .where(table_name.updatedAt.lt(date)) .execute() } 위 코드는 아래와 같이 작동됩니다. 현재 시간이 2021년 11월 20일 10시 5분 이라면, DELETE FROM `table_name` WHERE `table_name`.updatedAt < '2021-11-20 09:05:00' 위와 같은 쿼리문이 작성되는 것입니다. 쿼리 진행 후 삭제가 된 데이터의 갯수를 리턴하도록 되어 있습니다.

    Kotlin Spring Boot 에 Querydsl 종속성이 추가된 프로젝트 소스 공유

    스프링 이니셜라이저에는 왜 querydsl 이 없는가! 그래서 제가 공개 템플릿 레포를 하나 만들었습니다. https://github.com/Kuass/Kotlin-Spring_Boot-Example GitHub - Kuass/Kotlin-Spring_Boot-Example: Why isn't there a querydsl in the spring initializer! Why isn't there a querydsl in the spring initializer! - GitHub - Kuass/Kotlin-Spring_Boot-Example: Why isn't there a querydsl in the spring initializer! github.com

    [Querydsl] 하나의 응답을 원할 때, exist 사용을 자제하자.

    우선, 제가 아는 지식내에서는 exist 메소드를 사용함으로 얻는 이점이 없으므로 작성한 내용입니다. 1 2 3 4 5 6 7 8 public Boolean memberExists(Long memberId) { Integer findMember = queryFactory .selectOne() .from(member) .where(member.memberId.eq(memberId)) .fetchFirst(); return findMember != null; } Colored by Color Scripter cs 위처럼 fetchFirst() 를 이용하자. limit(1) 과 동일한 개념이며 사용시 원하는 결과를 찾을경우 쿼리가 종료되기 때문에 성능에 도움이 된다. exist()를 사용할경우 select에..

    [Querydsl] 동적 쿼리를 BooleanExpression 으로 작성하기

    우선 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 @Override public List findDynamicQuery(String name, String age, String phoneNumber) { BooleanBuilder builder = new BooleanBuilder(); if (!StringUtils.isEmpty(name)) builder.and(member.name.eq(name)); if (!StringUtils.isEmpty(age)) builder.and(member.age.eq(age)); if (!StringUtils.isEmpty(phoneNumber)) builder.and(member.phoneNumber.eq(phoneNumbeR)); retu..