Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

Querydsl vs JPQL 본문

인프런/[인프런] QueryDsl

Querydsl vs JPQL

Seung__ 2021. 9. 1. 22:18

1. JPQL


  • 문자로 작성됨 -> 오타나면 실행해봐야 알 수 있음.
    @Test
    public void startJPQL(){
        //member1 찾기
        String qlString  = "select m from Member m where m.username = :username";

        Member findMember = em.createQuery(qlString, Member.class)
                .setParameter("username", "member1")
                .getSingleResult();

        assertThat(findMember.getUsername()).isEqualTo("member1");
    }

 

 

 

2.Querydsl


  • JPAQueryFactory에 entityManger 넘겨줌
  • QMember생성시 변수 명에 별칭 지정. -> 잘 안씀
  • .setParameter() 필요 없음-> prepare statement binding 방식?
  • -->parameter binding 자동으로 함.
  • 자바 코드로 작성하기 때문에 컴파일 단계에서 오류 잡을 수 있음.
    @Test
    public void startQuerydsl(){
        JPAQueryFactory queryFactory = new JPAQueryFactory(em);
        //변수명에 별칭 지정. 사실 크게 중요하지 않음 ㅋㅋ 안씀 ㅋㅋㅋ
        QMember m = new QMember("m"); //어떤 QMember인지 구분

        Member findMember = queryFactory
                .select(m)
                .from(m)
                .where(m.username.eq("member1"))
                .fetchOne();

        assertThat(findMember.getUsername()).isEqualTo("member1");

    }
    select
        member0_.member_id as member_i1_1_,
        member0_.age as age2_1_,
        member0_.team_id as team_id4_1_,
        member0_.username as username3_1_ 
    from
        member member0_ 
    where
        member0_.username=?

 

 

 

3. JPAQueryFactory를 필드로


  • 필드로 빼서 사용이 가능
@SpringBootTest
@Transactional
public class QuerydslBasicTest {

    @Autowired
    EntityManager em;

    JPAQueryFactory queryFactory;


    @BeforeEach
    public void before(){
        queryFactory = new JPAQueryFactory(em);

 

 

4.GitHub : 210901 JPQL VS Querydsl


 

GitHub - bsh6463/Querydsl

Contribute to bsh6463/Querydsl development by creating an account on GitHub.

github.com

 

'인프런 > [인프런] QueryDsl' 카테고리의 다른 글

결과 조회  (0) 2021.09.01
검색조건 쿼리  (0) 2021.09.01
기본 Q-Type  (0) 2021.09.01
예제 도메인 모델  (0) 2021.09.01
Querydsl 설정 및 검증  (0) 2021.09.01
Comments