JPA는 다양한 쿼리 방법을 지원함
- JPA를 사용하면 엔티티 객체를 중심으로 개발할 수 있음
- 문제는 검색을 할 때에도 테이블이 아닌 엔티티 객체를 대상으로 검색해야 함
- 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능함
- 필요한 데이터만 DB에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요함
String jpql = "select m From Member m where m.name like ‘%hello%'";
List<Member> result = em.createQuery(jpql, Member.class).getResultList();
//JPQL
//select m from Member m where m.age > 18
JPAFactoryQuery query = new JPAQueryFactory(em);
QMember m = QMember.member;
List<Member> list =
query.selectFrom(m)
.where(m.age.gt(18))
.orderBy(m.name.desc())
.fetch();
String sql = "SELECT ID, AGE, TEAM_ID, NAME FROM MEMBER WHERE NAME = 'kim'";
List<Member> resultList = em.createNativeQuery(sql, Member.class).getResultList();