개요

JPQL

JPQL vs Querydsl

@PersistenceContext
EntityManager em;

@Test
@DisplayName("JPQL")
void startJPQL() {
		String query = "select m from Member m where m.userName = :userName";
    Member findMember = em.createQuery(query, Member.class)
            .setParameter("userName", "member1")
            .getSingleResult();

    Assertions.assertThat(findMember.getUserName()).isEqualTo("member1");
}

@Test
@DisplayName("Query DSL")
void startQuerydsl() {
    //given
		JPAQueryFactory jpaQueryFactory = new JPAQueryFactory(em);
    QMember m = new QMember("m");

    //when
    Member findMember = jpaQueryFactory
            .select(m)
            .from(m)
            .where(m.userName.eq("member1")) // 파라미터 바인딩 처리
            .fetchOne();

    //then
    Assertions.assertThat(findMember.getUserName()).isEqualTo("member1");
}