예제
String query = "select m.username, 'HELLO', TRUE from Member m";
위와 같이 쿼리를 만들면 각각의 값들이 잘 뽑혀나오는 걸 확인할 수 있다.
ENUM 타입은 실습을 위해 Member 와 관련된 ENUM 클래스를 생성한다.
Public enum MemberType {
ADMIN, USER
}
그리고 Member 클래스에 MemberType 을 가져온다.
@Enumerated(EnumType.STRING)
private MemberType type;
그리고 실행 클래스에서 member 객체에 MemberType 을 세팅해준다.
member.setType(MemberType.ADMIN);
그리고 쿼리를 아래와 같이 작성한다.
String query = "select m.username, 'HELLO', TRUE from Member m" +
"where m.type = jpql.MemberType.ADMIN";
쿼리가 제대로 나가고, 값이 제대로 출력되면 조건에 맞는 값을 조회해 온거니 정상적으로 작동된 것이다.
만약 member 의 type 을 ADMIN이 아닌 USER 로 주면 List를 돌며 object[]의 값을 꺼내는 출력문지 보여지지 않을 것이다.
그런데 위의 방식은 패키지명을 적어야하는게 여간 귀찮은게 아니다. 대부분 실무에서는 위의 ㅂ아식보다는 그냥 파라미터 방식으로 빼서 사용한다.
참조 : 자바 ORM 표준 JPA 프로그래밍