
책 [자바 ORM 표준 JPA 프로그래밍]을 참고하여 작성하였습니다.
from Member as m처럼)예시
String jpql = "select m from Member as m where m.username = 'kim'"; //Member는 클래스명이 아니라 엔티티명
List<Member> resultList = em.createQuery(jpql, Member.class).getResultList();
Query query = em.createQuery("SELECT m.username, m.age from Member m");
List resultList = query.getResultList();
for (Object o : resultList){
Object[] result = (Object[]) o; //결과가 둘 이상이면 Object[]를 반환한다.
System.out.println("username = " + result[0]);
System.out.printlin("age = " + result[1]);
}
query.getResultList() : 결과를 예제로 반환(없으면 빈 컬렉션 반환)query.getSingleResutl() : 결과가 정확히 하나일 때 사용(아니면 예외발생)String usernameParam = "User1";
TypeQuery<Member> query = em.createQuery("SELECT m FROM Member m where m.username = :username", Member.class);
List<Member> members = em.CreateQuery("SELECT m FROM Member m where m.username = ?1", Member.class) //파라미터 위치값 1로 설정
.setParameter(1, usernameParam)
.getResultList();em.CreateNativeQuery()를 사용하면 된다.