김영환님의 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편 보면서 공부한 내용입니다.
📝 JPQL
📝 Criteria
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Member> query = cb.createQuery(Member.class);
Root<Member> m = query.from(Member.class);
CriteriaQuery<Member> cq = query.select(m)
.where(cb.equal(m.get("username"), "kim"));
List<Member> resultList = em.createQuery(cq).getResultList();
📝 QueryDSL
📝 JPQL 문법
// 타입 정보 명확할 때
TypedQuery<Member> query = em.createQuery("select m from Member m", Member.class);
TypedQuery<String> query2 = em.createQuery("select m.username from Member m", String.class);
// 타입 정보 불명확할 때
Query query3 = em.createQuery("select m.username, m.age from Member m");
📝 결과 조회 API
Member singleResult = em.createQuery("select m from Member m where m.username= :username", Member.class)
.setParameter("username", "member1")
.getSingleResult();
📝 프로젝션
📝 페이징 API
List<Member> result = em.createQuery("select m from Member m order by m.age desc", Member.class)
.setFirstResult(0) // 0번째부터
.setMaxResults(10) // 10개 가지고 올꺼야
.getResultList();
📝 조인