QueryDsl을 쓰면 좋은 이유

QueryDsl강의를 듣고 정리했다.

QueryDsl

스프링부트 + 스프링데이터 JPA로는 복잡한쿼리와 동적쿼리를 해결하지 못함. querydsl를 사용해서 쿼리를 자바 코드로 작성, 문법 오류를 컴파일 시점에 해준다.

    
    @Test
    public void jpql() {
        String username = "kim"
        String query = "select m from Member m " +
                    "where m.username = :username"; 
        List<Member> result = em.createQuery(query, Member.class)
                            .getResultList();
    }

    
    @Test
    public void querydsl() {
        String username = "kim"
        queryFactory
                .select(member)
                .from(member)
                .where(member.username.eq(username))
                .fetch();
    }
컴파일 시점에 오류를 발견할 수 있음.
자동완성 가능.
메서드로 뽑아서 재사용이 가능하다.