JPA/JPQL
JPA를 활용하여 쿼리 날리기
수달하나
2021. 7. 20. 22:07
JPA는 다양한 쿼리 방법을 지원한다.
- JPQL (대부분 이 방식을 사용)
- JPA Criteria
- QueryDSL
- 네이티브 SQL
- JDBC API 직접사용, MyBatis, SpringJdbcTemplate 함께 사용
JPQL
가장 단순한 조회 방법
- EntityManager.find()
- 객체 그래프 탐색 a.get()
- 기타 등등 ...
하지만 특별한 조건을 포함한 데이터를 알고 싶다면?
EntityManagerFactory emf = Persistence.createEntityManagerFactory("Test");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
try{
List<Member> memberList = em.createQuery(
"select m From Member as m where m.username like %kim%"
, Member.class).getResultList();
tx.commit();
}catch (Exception e){
tx.rollback();
e.printStackTrace();
}finally {
em.close();
}
emf.close();
위와 같은 과정을 통해서 쿼리를 날려줘야 한다.
(username에 kim을 포함하고 있는 모든 멤버들을 조회 한다.)