ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JPA, Query DSL] Tuple을 이용한 Join Entity 탐색
    JPA 2023. 10. 10. 11:13
    728x90

    안녕하세요. 정말 날씨가 이제는 춥네요.

    가을이 너무 매섭게 지나가는건 아닌가 무섭습니다.

     

    ㅠㅠㅠ 트렌치 코트를 꺼내지도 못했는데 말이죠~

     

    오늘은 프로젝트 중에 Tuple을 이용한 Entity 탐색에 대해 알아보겠습니다.

     

    Query DSL에서 멀티 엔티티 조회

    테이블은 회사내용이기도하고... 조인에 사용하는데 크게 영향을 끼치지 않기에 내용을 삭제 후 보여드리겠습니다.

    	public List<Tuple> findByCondition(String type, String card, int offset)
    	{
    		return jpaQueryFactory.select(contract, company, code)
            ...(조건)
    		.offset((offset-1)*10)
    		.limit(10)
    		.fetch();
    		
    	}

    내용을 보시면 List<Tuple>로 리턴하며 select에는 contract, company, code이렇게 세개의 QueryDSL 관련 class들이 있습니다.

    탐색
    List<Tuple>tuples=contractRepository.findByCondition(type, card, offset);

    이렇게 데이터를 받은 뒤 탐색을 시작하겠습니다.

    사실 간단하긴 하지만 제가 하루 이상 걸렸기에 기록을 해놓는 게시글이긴 합니다 헤헤

     

    		for(Tuple tuple:tuples)
    		{
    			Company tupleCompany=tuple.get(company);
    			Contract tupleContract=tuple.get(contract);
    			Code tupleCode=tuple.get(code);
    			
    			responseList.add(ContractResponseDto
    					.builder()
    					... 생성자 데이터
    					.build());
    		}

    보이시나요? 기존의 검색한 글에서는 company.name... 이런식이여서 계속 null데이터가 출력됐었습니다.

    큽..

     

    그치만 이제는 tuple.get을 통해 Class로 받습니다.

    comapny, contract, code는 Repository에서 사용했던 QCompany, QContract, QCode입니다.

     

    오늘은 이렇게 간단한게 탐색 방법을 기록 후 마무리하겠습니다.

     

    감사합니다. :D

    😉😉😉😉👍

    'JPA' 카테고리의 다른 글

    [JPA] 복합키 중 하나의 PK끼리 매핑  (0) 2023.10.24
    [JPA] JPQL로 복합키 PK 검색  (0) 2023.10.06
    [JPA] No default constructor for entity(에러)  (0) 2023.09.07

    댓글

Designed by Tistory.