(1/2) Item Entity, Repository, Test 실습 Querydsl > 스프링 부트

본문 바로가기

[개발] (1/2) Item Entity, Repository, Test 실습 Querydsl

필기자
2022-09-13 15:53 6,538 0

본문

Item Entity, Repository, Test 실습 Querydsl

 

pom.xml 파일 추가



    <!--querydsl 의존성 추가-->
   <dependency>
      <groupId>com.querydsl</groupId>
      <artifactId>querydsl-jpa</artifactId>
      <version>5.0.0</version>
   </dependency>
   <dependency>
      <groupId>com.querydsl</groupId>
      <artifactId>querydsl-apt</artifactId>
      <version>5.0.0</version>
   </dependency>
   <!--querydsl 의존성 추가-->



    <!--querydsl 플러그인 설정-->
   <plugin>
      <groupId>com.mysema.maven</groupId>
      <artifactId>apt-maven-plugin</artifactId>
      <version>1.1.3</version>
      <executions>
         <execution>
            <goals>
               <goal>process</goal>
            </goals>
            <configuration>
               <outputDirectory>target/generated-sources/java</outputDirectory>
               <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
            </configuration>
         </execution>
      </executions>
   </plugin>
   <!--querydsl 플러그인 설정-->

 

오른쪽 Maven 탭 > Lifecycle > compile 클릭

 

20220913155803_ddfa29dc4cb6a70c618839d7aa582e62_bfuk.png

 

왼쪽 Project > target/generated-sources/java/kr/hull/shop/entity/QItem.java 파일 생성확인

 

20220913155952_ddfa29dc4cb6a70c618839d7aa582e62_ma1r.png

 

Flie > Project Structure(ctrl+alt+shift+s) > Modules > target > generated-sources 선택 후 상단 Sources 탭 클릭(다른탭은 해제)

 

20220913160551_ddfa29dc4cb6a70c618839d7aa582e62_71kf.png

 

src/test/java/kr/hull/shop/repository/ItemRepositoryTest.java 다음 내용 추가(이어 쓰기)



    @PersistenceContext
    EntityManager em;

    @Test
    @DisplayName("Querydsl 조회 확인")
    public void queryDslTest(){
        this.createItemList();
        JPAQueryFactory queryFactory = new JPAQueryFactory(em);
        QItem qItem = QItem.item;
        JPAQuery<Item> query  = queryFactory.selectFrom(qItem)
                .where(qItem.itemSellStatus.eq(ItemSellStatus.SELL))
                .where(qItem.itemDetail.like("%" + "좋은 상품 설명" + "%"))
                .orderBy(qItem.price.desc());

        List<Item> itemList = query.fetch();

        for(Item item : itemList){
            System.out.println(item.toString());
        }
    }

 

결과 QUERY



    select
        item0_.item_id as item_id1_0_,
        item0_.item_detail as item_det2_0_,
        item0_.item_nm as item_nm3_0_,
        item0_.item_sell_status as item_sel4_0_,
        item0_.price as price5_0_,
        item0_.reg_time as reg_time6_0_,
        item0_.stock_number as stock_nu7_0_,
        item0_.update_time as update_t8_0_ 
    from
        item item0_ 
    where
        item0_.item_sell_status='SELL' 
        and (
            item0_.item_detail like '%좋은 상품 설명%' escape '!'
        ) 
    order by
        item0_.price desc

 

결과

 

20220913163710_ddfa29dc4cb6a70c618839d7aa582e62_gr6l.png

20220913163750_ddfa29dc4cb6a70c618839d7aa582e62_qjdk.png

 

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색