10.5 네이티브 SQL 사용


// 결과 타입 정의
public Query createNativeQuery(String sqlString, Class resultClass);

// 결과 타입 정의할 수 없음
public Query createNativeQuery(String sqlString);

// 결과 매핑 사용
public Query createNativeQuery(String sqlString, String resultSetMapping);

엔티티 조회

//SQL 정의
String sql = 
        "SELECT ID, AGE, NAME, TEAM_ID " +
        "FROM MEMBER WHERE AGE > ?";

Query nativeQuery = em.createNativeQuery(sql, Member.class)
                        .setParameter(1, 20);

List<Member> resultList = nativeQuery.getResultList();

중요한 점

네이티브 SQL로 SQL만 직접 사용할 뿐, 나머지는 JPQL을 사용할 때와 같다.
조회된 엔티티도 영속성 컨텍스트에서 관리.

값 조회

// SQL 조회
String sql = 
            "SELECT ID, AGE, NAME, TEAM_ID " +
            "FROM MEBER WHERE AGE > ?"

Query nativeQuery = em.creatNativeQuery(sql)
                        .setParamter(1, 10);

List<Object[]> resultList = nativeQuery.getResultList();

```

results matching ""

    No results matching ""