Criteria는 그냥 쿼리를 코드로 짜는 방법이다.
간단한것 같지만 엄청 어렵다..
실무에서 안쓰는 걸추천...
못알아봐서 유지보수가 어렵다.......
//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();
뭐 아래와 같은 식으로 동적쿼리도 짤수있다.
//Criteria 사용준비
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Member> query = cb.createQuery(Member.class);
//루트 클래스 (조회를 시작할 클래스)
Root<Member> m = query.from(Member.class);
//쿼리 생성
String username = "name";
CriteriaQuery<Member> cq = query.select(m);
if (username != null) {
cq = cq.where(cb.equal(m.get("userName"), "kim"));
}
List<Member> resultList = em.createQuery(cq).getResultList();
'Developer' 카테고리의 다른 글
[JPA]Native Query (0) | 2020.09.21 |
---|---|
[JPA]QueryDSL - 동적쿼리 실무사용권장 (0) | 2020.09.21 |
[JPA]JPQL (0) | 2020.09.21 |
[JPA]테이블에 컬렉션을 저장한다-@ElementCollection,@CollectionTable (1) | 2020.09.20 |
[JPA]@Embeddable 문제점 (0) | 2020.09.20 |