diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java index 7f660d6ad007dc09724cf19bf66e7a128a4ee9e8..64000b5451ab3ca460cf1230a271ca800ce573bd 100644 --- a/src/main/java/com/example/demo/DemoApplication.java +++ b/src/main/java/com/example/demo/DemoApplication.java @@ -11,9 +11,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 643fb5f35a4c38cbc7e9a6b5a11646286750b112..0000000000000000000000000000000000000000 --- a/src/main/java/com/example/demo/TestController.java +++ /dev/null @@ -1,13 +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; - } -} \ No newline at end of file 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 0000000000000000000000000000000000000000..7359010c1aa0a55de8a911c2c17cbfdaa0c0e5eb --- /dev/null +++ b/src/main/java/com/example/demo/controller/TestController.java @@ -0,0 +1,29 @@ +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 { + @GetMapping(value = "/test") + public UserDto test(){ + UserDto dto = new UserDto(); + dto.setAge(17); + dto.setName("Jane"); + return dto; + } + @RequestMapping(value = "/", method = RequestMethod.GET) + public String test(@RequestParam("id") String id){ + System.out.println(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(); + } +} \ No newline at end of file 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 3ba7a5a61a794326212e1da585d8712f49942694..aed803789a32c058e5635620adbe2a88c6941bf7 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 4fe99d5c8c5b7a94786e4d3b3f393b80837f57d1..88beb0dcaea9d793c6ac1df2522141d421dcc113 100644 --- a/src/main/java/com/example/demo/repository/ItemRepository.java +++ b/src/main/java/com/example/demo/repository/ItemRepository.java @@ -9,5 +9,10 @@ import com.example.demo.entity.Item; import java.util.List; // @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); } \ No newline at end of file diff --git a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java index ec9292e04e863f2fcdc8544ae9675b786f7b746f..6c408f716c6a1138dcd717ed8c07af8565b1c509 100644 --- a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java +++ b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java @@ -5,7 +5,7 @@ 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 com.example.demo.repository.ItemRepository; import org.junit.jupiter.api.DisplayName; @@ -24,6 +24,9 @@ import javax.persistence.PersistenceContext; public class ItemRepositoryTest { @Autowired ItemRepository itemRepository; + + @PersistenceContext + EntityManager em; @Test @DisplayName("상품 저장 테스트") public void createItemTest() { @@ -37,4 +40,80 @@ public class ItemRepositoryTest { Item savedItem = itemRepository.save(item); System.out.println(savedItem.toString()); } + 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