[SPRING] 스프링 데이터의 다중 테이블에서 선택하기
SPRING스프링 데이터의 다중 테이블에서 선택하기
Spring Data Repository 레이어의 여러 테이블에서 데이터를 가져 오는 select 쿼리를 작성해야합니다. @Query를 사용하여 사용자 지정 쿼리를 작성할 수 있지만 단일 테이블에서만 값을 반환한다는 것을 알고 있습니다.
SELECT s.service_id, s.name, us.rating_id
FROM services s,
ratings r,
user_services us
where
us.service_id = s.service_id and
us.rating_id = r.rating_id and
us.user_id= ?;
해결법
-
==============================
1.인터페이스 메서드는 네이티브 SQL을 사용하여 여러 테이블에서 열을 선택할 수 있으며이 메서드는 개체 배열의 목록을 반환합니다.
인터페이스 메서드는 네이티브 SQL을 사용하여 여러 테이블에서 열을 선택할 수 있으며이 메서드는 개체 배열의 목록을 반환합니다.
public interface MyRepository extends JpaRepository { @Query(name = [name], nativeQuery = true) List<Object[]> methodThatQueriesMultipleTables(); }
목록의 각 항목은 데이터 행인 객체 배열입니다.
사용자 지정 저장소 구현을 만들 수도 있습니다.
스프링 데이터 JPA에 커스텀 메소드를 추가하는 방법
@NoRepositoryBean public interface CustomRepository<[Your object]> { List<Object[]> methodThatQueriesMultipleTables(); } public class MyRepositoryImpl<[Your object]> implements CustomRepository<[Your object] { @PersistenceContext private EntityManager entityManager; @Override public List<Object[]> methodThatQueriesMultipleTables() { //use JPA query to select columns from different tables Query nativeQuery = entityManager.createNativeQuery("query"); return query.getResultList(); } }
from https://stackoverflow.com/questions/24638465/selecting-from-multiple-tables-in-spring-data by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 테스트에서 환경 변수 또는 시스템 속성을 설정하는 방법? (0) | 2019.02.06 |
---|---|
[SPRING] SQL 쿼리를 사용한 동적 스프링 보안 (0) | 2019.02.06 |
[SPRING] Spring을 사용한 JSP 기반 템플릿 (0) | 2019.02.06 |
[SPRING] 여러 트랜잭션 관리자 문제 발생 (0) | 2019.02.06 |
[SPRING] 자바 웹 세션 처리 방법에 대한 혼란. Servlet API와 Http Session 객체를 사용하여 쿠키와 헤더의 차이점 파악하기 (0) | 2019.02.06 |