From 33383c753dae3c0b92b7b92b6ea3f051d6ab17f2 Mon Sep 17 00:00:00 2001 From: chaewon <lvw3774@ajou.ac.kr> Date: Wed, 2 Apr 2025 17:22:41 +0900 Subject: [PATCH] first commit --- .../com/example/demo/DemoApplication.java | 4 - .../java/com/example/demo/TestController.java | 21 ---- .../demo/controller/TestController.java | 28 +++++ .../demo/{ => controller}/UserDto.java | 2 +- .../demo/repository/ItemRepository.java | 8 +- .../demo/repository/ItemRepositoryTest.java | 108 +++++++++++++++--- 6 files changed, 127 insertions(+), 44 deletions(-) delete mode 100644 src/main/java/com/example/demo/TestController.java create mode 100644 src/main/java/com/example/demo/controller/TestController.java rename src/main/java/com/example/demo/{ => controller}/UserDto.java (82%) diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java index f79e0f5..82e42ec 100644 --- a/src/main/java/com/example/demo/DemoApplication.java +++ b/src/main/java/com/example/demo/DemoApplication.java @@ -12,9 +12,5 @@ public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } - @GetMapping(value="/") - public String HelloWorld(){ - return "Hello World"; - } } diff --git a/src/main/java/com/example/demo/TestController.java b/src/main/java/com/example/demo/TestController.java deleted file mode 100644 index 1e9c57b..0000000 --- a/src/main/java/com/example/demo/TestController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.example.demo; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class TestController { - - @GetMapping(value = "/test") - public UserDto test(){ - - UserDto dto = new UserDto(); - dto.setAge(17); - dto.setName("Jane"); - - return dto; - - } - -} - diff --git a/src/main/java/com/example/demo/controller/TestController.java b/src/main/java/com/example/demo/controller/TestController.java new file mode 100644 index 0000000..9fd757a --- /dev/null +++ b/src/main/java/com/example/demo/controller/TestController.java @@ -0,0 +1,28 @@ +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; + +import com.google.gson.JsonObject; + + +@RestController +public class TestController{ + + @RequestMapping(value = "/", method = RequestMethod.GET) + public String test(@RequestParam("id") String id){ + + JsonObject obj = new JsonObject(); + obj.addProperty("title", "산사와 아가싸"); + obj.addProperty("content", "로맨틱 코메디"); + + JsonObject data = new JsonObject(); + data.addProperty("time", "토일 8시"); + obj.add("data", data); + + return obj.toString(); + } + +} diff --git a/src/main/java/com/example/demo/UserDto.java b/src/main/java/com/example/demo/controller/UserDto.java similarity index 82% rename from src/main/java/com/example/demo/UserDto.java rename to src/main/java/com/example/demo/controller/UserDto.java index 31b7ba8..0d5311a 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; diff --git a/src/main/java/com/example/demo/repository/ItemRepository.java b/src/main/java/com/example/demo/repository/ItemRepository.java index 01bcca8..926d1dc 100644 --- a/src/main/java/com/example/demo/repository/ItemRepository.java +++ b/src/main/java/com/example/demo/repository/ItemRepository.java @@ -11,5 +11,11 @@ import com.example.demo.entity.Item; // @NoRepositoryBean 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 03f85d1..2ad4382 100644 --- a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java +++ b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java @@ -5,6 +5,8 @@ import org.springframework.beans.factory.annotation.Autowired; 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; @@ -23,23 +25,95 @@ import javax.persistence.PersistenceContext; @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()); -} + @Autowired + ItemRepository itemRepository; + + @PersistenceContext + EntityManager em; + + public void createItemList(){ + + for(int i=1; i <=10; i++){ + Item item = new Item(); + item.setItemNm(("테스트 상품") + i); + item.setPrice(10000 + i); + item.setItemDetail("테스트 상품 상세 설명" + i); + item.setItemSellStatus(ItemSellStatus.SELL); + item.setStockNumber(100); + item.setRegTime(LocalDateTime.now()); + item.setUpdateTime(LocalDateTime.now()); + Item savedItem = itemRepository.save(item); + } + } + + @Test + @DisplayName("상품명 조회 테스트") + public void findByItemNmTest(){ + this.createItemList(); + List<Item> itemList = itemRepository.findByItemNm("테스트 상품1"); + for(Item item : itemList){ + System.out.println(item.toString()); + } + + } + + @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()); + } + } + + @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()); + } + } } \ No newline at end of file -- GitLab