JPQL: 엔티티 객체를 대상으로 쿼리, SQL을 추상화 해서 특정 데이터 베이스 SQL에 의존하지 않는다. → 결국 SQL로 변환된다. Criteria: 표준 스펙에 들어간다. (실무에서 x → 유지보수 어려움) 권하지 않는다. QueryDSL: JPQL 을 잘 사용하면 QueryDSL 은 금방 사용 가능하다. (실무 사용 권장) 컴파일 시점에 문법 오류 찾을 수 있음 JPQL 빌더 역할 자바코드로 JPQL 작성 가능 native SQL : JPA가 제공하는 SQL을 직접 사용하는 기능. 특정 데이터베이스에 의존적인 기능 flush 는 commit, query가 날라갈 때 실행이 된다. (기본적인 auto모드 전략, JPA 관련해서 쓸 때는 상관이 없다.) JPA를 사용하면서 JDBC 커넥션을 직접 사..