Java Persistence Query Language
엔티티 객체를 조회하는 객체지향 쿼리
@Query("select m from Member as m where m.name = 'yeeun'")
List <Item> findItem();
TypeQuery 반환 타입이 명확할 때 사용
TypedQuery<Member> query1 = em.createQuery("select m from Member m", Member.class);
TypedQuery<String> query2 = em.createQuery("select m.username from Member m", String.class);
Query 반환 타입이 명확하지 않을 때 사용
Query query3 = em.createQuery("select m.username, m.age from Member m");
API
List<Member> resultList = query1.getResultList();
Member singleResult = query2.getSingleResult();
파라미터 바인딩
Member result = em.createQuery("select m from Member m where m.username = :username", Member.class)
.setParameter("username","member1")
.getSingleResult();
Member singleResult = query.getSingleResult();
Member result = em.createQuery("select m from Member m where m.username = ?1", Member.class)
.setParameter(1, "member1")
.getSingleResult();
-> 사용하지 않는 게 좋음. 데이터베이스에는 값이 계속해서 추가되기 때문에 위치가 변경될 가능성이 매우 높기 때문