From ab3f2e66b1869b39e81740ed49824402f8575f3a Mon Sep 17 00:00:00 2001 From: Su Sandi Ko <s202322014@ajou.ac.kr> Date: Wed, 2 Apr 2025 17:10:13 +0900 Subject: [PATCH] postman import --- pom.xml | 19 +++- .../demo/{ => controller}/TestController.java | 15 ++- .../demo/{ => controller}/UserDto.java | 2 +- .../demo/repository/ItemRepository.java | 14 ++- .../demo/repository/ItemRepositoryTest.java | 99 ++++++++++++++++--- 5 files changed, 129 insertions(+), 20 deletions(-) rename src/main/java/com/example/demo/{ => controller}/TestController.java (50%) rename src/main/java/com/example/demo/{ => controller}/UserDto.java (81%) diff --git a/pom.xml b/pom.xml index ee799c7..902b2d6 100644 --- a/pom.xml +++ b/pom.xml @@ -104,6 +104,9 @@ <version>5.1.3</version> </dependency> + + + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> @@ -122,6 +125,7 @@ <artifactId>mybatis-spring</artifactId> <version>3.0.1</version> </dependency> + </dependencies> @@ -149,15 +153,24 @@ <executions> <execution> <goals> - <goal>process</goal> + <goal> + process + </goal> </goals> <configuration> - <outputDirectory>target/generated-sources/java</outputDirectory> - <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> + <outputDirectory> + target/generated-sources/java + </outputDirectory> + <processor> + com.querydsl.apt.jpa.JPAAnnotationProcessor + </processor> </configuration> </execution> </executions> </plugin> + + + </plugins> </build> diff --git a/src/main/java/com/example/demo/TestController.java b/src/main/java/com/example/demo/controller/TestController.java similarity index 50% rename from src/main/java/com/example/demo/TestController.java rename to src/main/java/com/example/demo/controller/TestController.java index fc0b76b..e017e7e 100644 --- a/src/main/java/com/example/demo/TestController.java +++ b/src/main/java/com/example/demo/controller/TestController.java @@ -1,12 +1,19 @@ -package com.example.demo; +package com.example.demo.controller; + +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; + @RestController public class TestController { @GetMapping(value = "/test") - public UserDto test(){ + public UserDto test() { UserDto dto = new UserDto(); dto.setAge(17); dto.setName("Jane"); -return dto; } -} \ No newline at end of file + return dto; + } + +} diff --git a/src/main/java/com/example/demo/UserDto.java b/src/main/java/com/example/demo/controller/UserDto.java similarity index 81% rename from src/main/java/com/example/demo/UserDto.java rename to src/main/java/com/example/demo/controller/UserDto.java index 818b64c..cd685a7 100644 --- a/src/main/java/com/example/demo/UserDto.java +++ b/src/main/java/com/example/demo/controller/UserDto.java @@ -1,4 +1,4 @@ -package com.example.demo; +package com.example.demo.controller; import lombok.Getter; import lombok.Setter; import lombok.ToString; diff --git a/src/main/java/com/example/demo/repository/ItemRepository.java b/src/main/java/com/example/demo/repository/ItemRepository.java index c0d9053..fd9afc8 100644 --- a/src/main/java/com/example/demo/repository/ItemRepository.java +++ b/src/main/java/com/example/demo/repository/ItemRepository.java @@ -6,8 +6,20 @@ import org.springframework.data.repository.query.Param; import java.util.List; import com.example.demo.entity.Item; // @NoRepositoryBean -public interface ItemRepository extends JpaRepository<Item, Long>{ +public interface ItemRepository extends JpaRepository<Item, Long>{ + List<Item> findByItemNm(String itemNm); + List<Item> findByItemNmOrItemDetail(String itemNm, String itemDetail); + List<Item> findByPriceLessThan(Integer price); + List<Item> findByPriceLessThanOrderByPriceDesc(Integer price); + + /* + * @Query("select i from Item i where i.itemDetail like %:itemDetail%order by i.price desc") + List<Item> findByItemDetail(@Param("itemDetail") String itemDetail); + * + */ } + + diff --git a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java index bb4cd02..b48853f 100644 --- a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java +++ b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java @@ -6,24 +6,101 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.TestPropertySource; import com.example.demo.entity.Item; import com.example.demo.entity.QItem; + +//import com.example.demo.entity.QItem; import org.junit.jupiter.api.DisplayName; import java.time.LocalDateTime; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.junit.runner.RunWith; -import com.example.demo.constant.ItemSellStatus; import java.util.List; -import com.querydsl.jpa.impl.JPAQueryFactory; import com.querydsl.jpa.impl.JPAQuery; +import com.example.demo.constant.ItemSellStatus; +import java.util.List; +import com.querydsl.jpa.impl.JPAQueryFactory; +import com.querydsl.jpa.impl.JPAQuery; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; -@SpringBootTest -@TestPropertySource(locations="classpath:application-test.properties") -@RunWith( SpringJUnit4ClassRunner.class ) + public class ItemRepositoryTest { @Autowired ItemRepository itemRepository; -@Test -@DisplayName("상품 저장 테스트") public void createItemTest(){ -Item item = new Item(); item.setItemNm("테스트 상품"); item.setPrice(100000); item.setItemDetail("테스트 상품 상세 설명"); item.setStockNumber(100); item.setRegTime(LocalDateTime.now()); item.setUpdateTime(LocalDateTime.now()); - Item savedItem = itemRepository.save(item); -System.out.println(savedItem.toString()); + + @PersistenceContext + EntityManager em; + + public void createItemList() { + for (int i = 1; i <= 10; i++) { + + } + } + + @Test + @DisplayName("상품명 조회 테스트") + public void findByItemNmTest() { + this.createItemList(); + List<Item> itemList = itemRepository.findByItemNm("테스트 상품 1"); + for (Item item : itemList) { + System.out.println(item.toString()); + } } -} \ No newline at end of file + + @Test + @DisplayName("상품명, 상품상세 설명 OR 테스트") + public void findByItemNmOrItemDetailTest() { + this.createItemList(); + List<Item> itemList = itemRepository.findByItemNmOrItemDetail("테스트 상품 1", "테스트 상품 상세 설명 5"); + for (Item item : itemList) { + System.out.println(item.toString()); + } + } + + @Test + @DisplayName("가격 LessThan 테스트") + public void findByPriceLessThanTest() { + this.createItemList(); + List<Item> itemList = itemRepository.findByPriceLessThan(10005); + for (Item item : itemList) { + System.out.println(item.toString()); + } + } + + @Test + @DisplayName("가격 내람차순 조회 테스트") + public void findByPriceLessThanOrderByPriceDesc() { + this.createItemList(); + List<Item> itemList = itemRepository.findByPriceLessThanOrderByPriceDesc(10005); + for (Item item : itemList) { + System.out.println(item.toString()); + } + } + + /* + pg 26 + * @Test + * + * @DisplayName("@Query를 이용한 상품 조회 테스트") + * public void findByItemDetailTest() { + * this.createItemList(); + * List<Item> itemList = itemRepository.findByItemDetail("테스트 상품 상세 설명"); + * for (Item item : itemList) { + * System.out.println(item.toString()); + * } + * } + * + * + */ + + @Test + @DisplayName("Querydsl 조회테스트 1") + 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()); + } +} +} -- GitLab