피할 수 없다면 즐기자! 스프링부트 너.. 뭐 돼?
select m from Member m
// Member 엔티티 조회
select m.team from Member m
// Member와 관련된 team을 조회
select m.username, m.age from Member m
// Member엔티티에 있는 username, age 를 조회
: 조회 시작 위치(0부터 시작)
: 조회할 데이터 수로 몇 번째부터 몇 개 가지고 올지 정할 수 있어요.
package com.koreait.jpql;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import com.koreait.jpql.domain.Address;
import com.koreait.jpql.domain.Member;
import com.koreait.jpql.domain.Team;
public class JpaMain5 {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
try {
for(int i = 0; i < 100; i++) {
Member member = new Member();
member.setUsername("member " + i);
member.setAge(i);
em.persist(member);
}
em.flush();
em.clear();
// 페이징 처리
String jpql = "select m from Member m order by m.id";
List<Member> resultList = em.createQuery(jpql, Member.class)
.setFirstResult(0)
.setMaxResults(10)
.getResultList();
System.out.println("result.size : " + resultList.size());
for(Member m : resultList) {
System.out.println("m = " + m.toString());
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally {
em.close();
emf.close();
}
}
}
출처
https://media.giphy.com/media/kyUIknbbDNvID5XzU4/giphy.gif
https://media.giphy.com/media/A6aHBCFqlE0Rq/giphy.gif