10.4 QueryDSL


쿼리를 문자가 아닌 코드로 작성해도 쉽고 간결하며, 모양도 쿼리와 비슷하게 개발할 수 있다!

시작


QueryDSL을 사용하려면 com.mysema.query.jpa.impl.JPAQuery 객체를 생성해야 한다.

public void queryDSL() {

		EntityManager em = emf.createEntityManager();
		
		JPAQuery query = new JPAQuery(em);
		QMember qMember = new QMember("m"); //생성되는 JPQL의 별칭이 m
		List<Member> members =
				query.from(qMember)
				.where(qMember.name.eq("회원1"))
				.orderBy(qMember.name.desc())
				.list(qMember);
}

기본 Q 생성


쿼리 타입(Q)는 사용하기 편리하도록 기본 인스턴스를 보관하고 있다.

public class QMember extends EntityPathBase<Member> {

		public static final QMember member = new QMember("member1");
		... 
}