From 27d176e041ed29a8757939a54fe96c0be12f7696 Mon Sep 17 00:00:00 2001 From: jhm991231 <jhm991231@ajou.ac.kr> Date: Wed, 2 Apr 2025 17:21:38 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A4=91=EA=B0=84=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .attach_pid45597 | 0 .../com/example/demo/DemoApplication.java | 7 -- .../java/com/example/demo/TestController.java | 17 ---- .../demo/controller/TestController.java | 27 ++++++ .../demo/{ => controller}/UserDto.java | 4 +- .../demo/repository/ItemRepository.java | 9 ++ src/main/resources/static/index.html | 13 +++ .../demo/repository/ItemRepositoryTest.java | 95 ++++++++++++++++--- 8 files changed, 133 insertions(+), 39 deletions(-) create mode 100644 .attach_pid45597 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%) create mode 100644 src/main/resources/static/index.html diff --git a/.attach_pid45597 b/.attach_pid45597 new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java index 52d3d31..372f9ff 100644 --- a/src/main/java/com/example/demo/DemoApplication.java +++ b/src/main/java/com/example/demo/DemoApplication.java @@ -2,7 +2,6 @@ package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @@ -12,10 +11,4 @@ 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 954ca1b..0000000 --- a/src/main/java/com/example/demo/TestController.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.example.demo; - -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.bind.annotation.GetMapping; - -@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..d8186a6 --- /dev/null +++ b/src/main/java/com/example/demo/controller/TestController.java @@ -0,0 +1,27 @@ +package com.example.demo.controller; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.google.gson.JsonObject; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +@RestController +public class TestController { + @RequestMapping(value = "/test", 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 6f15f7c..002b816 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; @@ -8,8 +8,6 @@ import lombok.ToString; @Setter @ToString public class UserDto { - private String name; private Integer age; - } diff --git a/src/main/java/com/example/demo/repository/ItemRepository.java b/src/main/java/com/example/demo/repository/ItemRepository.java index e456d07..3b79411 100644 --- a/src/main/java/com/example/demo/repository/ItemRepository.java +++ b/src/main/java/com/example/demo/repository/ItemRepository.java @@ -11,5 +11,14 @@ 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/main/resources/static/index.html b/src/main/resources/static/index.html new file mode 100644 index 0000000..782da65 --- /dev/null +++ b/src/main/resources/static/index.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>example 1-2</title> + </head> + + <body> + <H2>example 1-2</H2> + <HR> + example 1-2 + </body> +</html> diff --git a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java index 6b88fb4..5573c4f 100644 --- a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java +++ b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java @@ -26,19 +26,90 @@ public class ItemRepositoryTest { @Autowired ItemRepository itemRepository; + @PersistenceContext + EntityManager em; + + public void createItemList() { + for (int i = 1; i <= 10; i++) { + 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); + } + } + + @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.findByItemNm("테스트 상품1"); + + 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("상품 저장 테스트") - 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()); + @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