728x90
반응형
간단한 경우,
와 같은 방법으로도 처리가 된다.
아니라면,
굳이 @Query로 다시 쿼리 쓴다 - > 오타 , 띄어쓰기 등에 의해 에러를 내뱉을 확률이 높아짐.
따라서 Criteria 또는 open source 라이브러리인 QueryDSL을 쓴다면 더 간편하게 JPA를 쓸 수 있다.
Criteria는 JPQL을 생성하는 빌더 클래스에 해당한다.
프로그래밍 코드로 JPQL을 작성해준다는 장점이 있다.
CriteriaBuilder cb = em.getCriterBuilder();
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.create(cq).getResultList();
QueryDSL 도 JPQL 빌더 역할을 한다. ( JPA 표준 X, 오픈소스 프로젝트에 해당함)
JPAQuery query = new JPAQuery(em);
QMember member = QMember.member;
// 쿼리, 결과조회
List<Member> members = query.from(member)
.where(member.username.eq("kim"))
.list(member);
Criteria 보다는 더 간편해보인다.
320x100
반응형
'JAVA > SPRING' 카테고리의 다른 글
springBoot / mapstruct (0) | 2022.06.08 |
---|---|
spring boot / H2 DB 세팅 (0) | 2022.05.29 |
Hikari CP / Spring boot 설정 (0) | 2022.05.23 |
log4j2.xml / log4jdbc / slf4j 설정 (0) | 2022.04.22 |
Spring cloud config (0) | 2022.02.03 |