JPQL의 특성

이재혁·2023년 6월 24일

package hellojpa;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import java.util.List;

public class JpaMain {
    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");

        EntityManager em = emf.createEntityManager();

        EntityTransaction tx = em.getTransaction();
        tx.begin();


        try {
            Member findMember = em.find(Member.class, 1L);
            List<Member> result = em.createQuery("select m from Member as m", Member.class)
                    .getResultList();

            for (Member member : result) {
                System.out.println("member.name = " + member.getName());
            }


            tx.commit();
        } catch (Exception e) {
            tx.rollback();
        } finally {
            em.close();
        }

        emf.close();
    }
}

select m from Member as m으로 쿼리문을 작성해야한다
만약, select * from Member as m 이렇게 날리면
JPQL은 객체지향 쿼리이므로 객체가 아닌 전체를 조회할 수 없다.
객체를 조회하는게 올바르므로 select m from Member as m으로
Member 엔티티 객체를 조회한다.

+페이지 네이션 예시

JPQL은 객체를 대상으로 하는 객체지향 쿼리라는 것을 잊지말자

profile
서비스기업 가고 싶은 대학생

0개의 댓글