묻고 답해요
133만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
ReWritePath필터의 세그먼트 식은 정규식일까요??
안녕하세요 선생님!강의를 잘 듣던 와중에 궁금증이 생겨 질문 드립니다. 게이트 웨이에 설정한 필터 중,요청 uri를 재정의 하기 위해서 RewritePath 라는 필터를 사용하잖아요. 이때 /user-service/(?<segment>.*), /$\{segment}는 정규식인가요??... 정규식표현에 segment라는 것이 찾아봐도 나오지 않아서요!!
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
CATEGORY_ITEM 클래스를 직접 생성하면 다대일 관계가 될까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의와 자료 내용대로 수업을 듣고 라이브 코딩으로 강사님과 똑같은 구동상황을 확인했습니다.그러다 한 가지 궁금증이 생겨서 질문을 남깁니다.지금 상황에서는 @ManyToMany 어노테이션을 사용해서Category 클래스와 Item 클래스가 다대다 관계를 가져,자동으로 category_item테이블이 생성되는 것으로 보입니다.그렇다면 강사님이 주신 자료에서 회원 테이블 분석표대로CategoryItem클래스를 생성하여 @OnetoMany @ManyToOne 관계로 전환한다면 일대다 다대일 관계가 성립하면서추가로 다른 컬럼을 추가한다거나 하는 게 가능할까요?
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
강의노트 내용
수업자료 파트에서 강의노트 파일을 받았는데 비어 있는 파일이라고 나옵니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Intellij IDEA가 아니라 Gradle을 사용하면 에러가 나와요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 여기서 Build and run using과 Run tests using을 Intellij IDEA로 설정하면 아무런 에러가 나오지 않고 잘 작동이 되는데, Gradle을 사용하게 되면 에러가 납니다. 이런 에러가 나옵니다. Project Structure의 SDK는 17로 해두었고,스프링부트 버전은 3.2.1, java는 17입니다. 현재 Gradle 버전은 8.5입니다. 제공해주신 피피티에서는 스프링 부트 3.2부터 JDK 17과 꼭 Gradle을 선택하라고 하셔서 고민이 되어 질문 남깁니다. 그냥 Intellij IDEA를 사용하여 수업을 들어도 괜찮을까요? 에러는 어떻게 해야 해결이 될까요..? 검색해봐도 잘 나오지 않아 여쭤봅니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
roletype 심볼을 찾을 수 없다고 합니다
사진과 같은 문제로 구글링을 해봐서 캐시도 지우고 재시작해보고 rebuild도 해봤는데 해결이 되지 않아 질문 남깁니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
instance_id 설정이 적용되지 않고 있습니다.
안녕하세요 위 사진처럼 인스턴스의 ID가 아래의 yml파일로 설정한데로 적용되지 않고 있어 질문드렸습니다. 커서를 두었을 때 포트번호도 확인해서 해당 인스턴스인것도 확인하였습니다. 원인이나 해결방법을 알 수 있을까요 ㅠㅠ
-
미해결
QueryDSL에서 In 연산자를 사용해 복수개의 컬럼과 비교할때 서브쿼리 없이 쿼리를 생성하는 방법이 있나요?
안녕하세요.QueryDSL에서 in 연산자를 사용해서 쿼리를 작성하려합니다.문제 요약의도 : QueryDSL에서 In연산자를 사용해 비교하는 쿼리 작성하려함. 비교대상 컬럼은 복수개 (in 연산자 좌항) (동적으로 생성한) 리터럴 2차원 배열 (서브쿼리가 아님)문제 : 자꾸 첫째 항목에서 괄호가 사라짐...의문 : queryDSL방법을 잘못 쓴 것인지? 혹은 실제 QueryDSL이나 JPA의 오류인지 알고싶음. 상세 내용작성하려는 쿼리는 입력된 복수개의 은행사와 계좌번호 쌍을 기준으로 계좌(BankAccount)엔티티의 정보를 검색하는 것입니다. 테이블에 "은행사,계좌번호" 쌍 중에 원하는 조합만 검색하는 게 목적입니다. 실제 데이터베이스에서 실행되길 의도한 쿼리select ba.* from bank_account ba where (ba.bank_name, ba.account_num ) in ( /* 입력된 리스트에 따라 가변적으로 변하는 부분 */ /* 아래 조합에만 일치하는 것만 검색 */ ( '하나', '3333-444-555'), ( '국민', '4455-1111-44') /* 조합계속 ... */ ) 따라서 아래와 같이 Expressions.list() 메소드로 IN절의 좌항을 완성하고 in의 파라미터로 서브쿼리 (서브쿼리가 들어가면 잘 동작함) 대신 리터럴 값을 넣어 생성했습니다.QueryDSL에서 쿼리 생성 예시(민감정보 바꾸고 간소화함)fun getBankAccountList( ) jpaQueryFactory.selectFrom(bankAccount) .where( Expressions.list( bankAccount.bank, //은행사 bankAccount.accountNum, // 계좌번호 ).`in`( /* 사용자로부터 입력받은 은행사,계좌번호 쌍들 */ Expressions.list( Expressions.constant(BankName.HANA.value), Expressions.constant("1234-56-789"), ), Expressions.list( Expressions.constant(BankName.HANA.value), Expressions.constant("2345-67-890"), ), Expressions.list( Expressions.constant(BankName.WOORI.value), Expressions.constant("3333-33-333"), ), ) // in() ) // where() .fetch() 실제로 생성된 쿼리를 보면 자꾸 2차원 배열의 첫째 항의 괄호가 사라집니다.생성된 쿼리 예시SELECT /* 컬럼 파트 */ FROM BANK_ACCOUNT B0_ WHERE ( B0_.BANK_NAME, B0_.ACCOUNT_NUM ) IN ( '하나', '1234-56-789', // 여기 첫째 항목의 괄호가 없어짐.. ( '하나', '1234-56-789'), ( '우리', '3333-33-333') )일단 다른 방법으로 기능 구현은 마친 상황입니다.in 절이 본질적으로 각 항목과 컬럼을 동등비교하는 조건이 or연산자 기준으로 반복되는 것을 알고 있기에, 해당 방법으로 기능 자체는 구현은 했습니다. (따라서 왜 괄호가 빠지는 것인지 자체에 대해 집중되었으면 하는 바람이 있습니다. ) 그래서 의문사항은 다음 두가지 입니다.이게 제대로된 queryDSL IN절 사용법이 아니라 그런 것일까요? 아니라면 옳은 방법은 뭘까요?그냥 queryDSL 혹은 JPA의 이슈일까요? 환경언어 : 코틀린(1.5.31)자바버전 : 11queryDSL : 5.0.0springBoot : 2.5.6
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
Permission targetId null
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세>> hasPermission targetId null문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요.https://github.com/IE-MangChi/RepositoryForAsk.git영상에선 그냥 넘어갔지만 targetId값이 null로 찍히는게 맞는지 잘모르겠습니다.강의내용대로면 저값이 매핑되어야하는데, 공식홈페이지보니 아닌거 같아서 질문드립니다!
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
h2 database 관련 질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 테스트 파일 있고.. h2아예 지우고 관련 파일 지우고 다시 깔아서 h2에는 접속은 되는데 인텔리제이에서 연결하려면 저런 코드가 뜨네요.. 어떤문제일까여
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
submit 버튼을 눌렀을때 어떤 api 가 불러와지는지 코드 어디에 쓰여있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]저 submit 버튼을 눌렀을때 어떤 api를 호출하는지 html에 없는것 같아서요. <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head th:replace="fragments/header :: header"/> <body> <div class="container"> <div th:replace="fragments/bodyHeader :: bodyHeader"/> <form th:object="${form}" method="post"> <!-- id --> <input type="hidden" th:field="*{id}"/> <div class="form-group"> <label th:for="name">상품명</label> <input type="text" th:field="*{name}" class="form-control" placeholder="이름을 입력하세요"/> </div> <div class="form-group"> <label th:for="price">가격</label> <input type="number" th:field="*{price}" class="form-control" placeholder="가격을 입력하세요"/> </div> <div class="form-group"> <label th:for="stockQuantity">수량</label> <input type="number" th:field="*{stockQuantity}" class="form-control" placeholder="수량을 입력하세요"/> </div> <div class="form-group"> <label th:for="author">저자</label> <input type="text" th:field="*{author}" class="form-control" placeholder="저자를 입력하세요"/> </div> <div class="form-group"> <label th:for="isbn">ISBN</label> <input type="text" th:field="*{isbn}" class="form-control" placeholder="ISBN을 입력하세요"/> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> <div th:replace="fragments/footer :: footer"/> </div> <!-- /container --> </body> </html>설명해주시면 감사하겠습니다ㅜㅜ
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
devtools 오류
devtools가 적용이 안되어서 인터넷에 나와 있는 내용 다 긁어서 해봐도 안됩니다. ㅠㅠㅠ 어떻게 해야 하나요
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
섹션7 상품 수정이 페이지가 연결이 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]상품 수정시, 수정 버튼을 누르면 위와 같이 나옵니다. 프론트를 하나도 몰라서, 오류가 뭔지 모르겠어요 ㅜㅜ package jpabook.jpashop.controller; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.domain.item.Book; import jpabook.jpashop.service.ItemService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import java.util.List; @Controller @RequiredArgsConstructor public class ItemController { private final ItemService itemService; @GetMapping("/items/new") public String createform(Model model) { model.addAttribute("form", new BookForm()); return "items/createItemForm"; } @PostMapping("/items/new") public String create(BookForm form) { Book book = new Book(); book.setName(form.getName()); book.setPrice(form.getPrice()); book.setStockQuantity(form.getStockQuantity()); book.setAuthor(form.getAuthor()); book.setIsbn(form.getIsbn()); itemService.saveItem(book); return "redirect:/"; } @GetMapping("/items") public String list(Model model) { List<Item> items = itemService.findItems(); model.addAttribute("items", items); return "items/itemList"; } @GetMapping("/items/{itemId}/edit") public String updateItemForm(@PathVariable("itemId") Long itemId, Model model) { Book item = (Book) itemService.findOne(itemId); BookForm form = new BookForm(); form.setId(item.getId()); form.setName(item.getName()); form.setPrice(item.getPrice()); form.setStockQuantity(item.getStockQuantity()); form.setAuthor(item.getAuthor()); form.setIsbn(item.getIsbn()); model.addAttribute("form", form); return "items/updateItemForm"; } @PostMapping("items/{itemId}/edit") public String updateItem(@PathVariable String itemId, @ModelAttribute("form") BookForm form) { Book book = new Book(); book.setId(form.getId()); book.setName(form.getName()); book.setPrice(form.getPrice()); book.setStockQuantity(form.getStockQuantity()); book.setAuthor(form.getAuthor()); book.setIsbn(form.getIsbn()); itemService.saveItem(book); return "redirect:/items"; } } <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head th:replace="fragments/header :: header"/> <body> <div class="container"> <div th:replace="fragments/bodyHeader :: bodyHeader"/> <form th:object="${form}" method="post"> <!-- id --> <input type="hidden" th:field="*{id}"/> <div class="form-group"> <label th:for="name">상품명</label> <input type="text" th:field="*{name}" class="form-control" placeholder="이름을 입력하세요"/> </div> <div class="form-group"> <label th:for="price">가격</label> <input type="number" th:field="*{price}" class="form-control" placeholder="가격을 입력하세요"/> </div> <div class="form-group"> <label th:for="stockQuantity">수량</label> <input type="number" th:field="*{stockQuantity}" class="form-control" placeholder="수량을 입력하세요"/> </div> <div class="form-group"> <label th:for="author">저자</label> <input type="text" th:field="*{author}" class="form-control" placeholder="저자를 입력하세요"/> </div> <div class="form-group"> <label th:for="isbn">ISBN</label> <input type="text" th:field="*{isbn}" class="form-control" placeholder="ISBN을 입력하세요"/> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> <div th:replace="fragments/footer :: footer"/> </div> <!-- /container --> </body> </html> 코드 올려드립니다! 확인 요청드립니다 ㅜ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
컨트롤러단 페이징 테스트
// 컨트롤러 코드 @GetMapping public ResponseEntity<?> postList(@PageableDefault(size = 10, sort = "id", direction = Sort.Direction.DESC) Pageable pageable) { Page<Post> posts = postService.getPosts(pageable); return ResponseEntity.ok() .body(ApiResponse.of("success", "게시물 전체 조회 성공", posts)); } // 테스트 코드 @DisplayName("게시물 전체를 페이징해서 조회해 온다.") @Test void postList() throws Exception { //given String sortProperty = "id"; String direction = "desc"; int pageNo = 0; int pageSize = 10; Pageable pageable = PageRequest.of(pageNo, pageSize, Sort.Direction.DESC, sortProperty); given(postService.getPosts(pageable)).willReturn(Page.empty()); //when ResultActions result = mvc.perform(get("/api/posts") .queryParam("page", String.valueOf(pageNo)) .queryParam("size", String.valueOf(pageSize)) .queryParam("sort", sortProperty + "," + direction)); //then result .andExpect(status().isOk()) .andExpect(jsonPath("$.status").value("success")) .andExpect(jsonPath("$.message").value("게시물 전체 조회 성공")) .andDo(print()); then(postService).should().getPosts(pageable); } 위 테스트 코드를 실행하면 httpstatus 200을 기대했지만 500이 떴다고 테스트 실패를 합니다.위 코드대로면 /api/posts?page=0&size=10&sort=id,desc이렇게 요청이 가는건데, 테스트코드 말고 포스트맨으로 직접 저렇게 요청 보내면 저는 정상적으로 응답이 옵니다 ㅠㅠ왜 저 테스트코드 실행하면 500에러가 나는걸까요..? 500 날만한 곳을 전혀 모르겠습니다 혼자 몇시간동안 끙끙앓다가 질문드립니다 ㅜㅜㅜ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
MappedBy는 읽기 전용으로 사용하는게 좋다고 하셨는데 CASCADE는 어떻게 등장한건가요?
[질문 템플릿]1. 예2. 예3. 예[질문 내용]CASCADE와 고아 객체 둘다 관계의 주인이 아닌 MappedBy 속성을 갖는 객체를 통해 주인 객체에 영향을 주는 것 같은데CASCADE가 수행하는 작업방식 보다주인 쪽에서 Insert를 수행하고 List쪽에 업데이트 된 주인 객체의 리스트를 읽어오는 게 더 자연스럽지 않나 의문이 들었습니다.고아 객체 또한 주인 쪽에 DELETE를 수행하고변화된 List를 읽어들이는게 저에겐 더 자연스럽게 느껴집니다.왜 CASCADE와 고아객체를 활용하면서 까지 주인 객체가 아닌 반대편에서 DB를 수정하는 작업을 수행하는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문할 경우 null값으로 member에 행이 추가되는
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 주문할 경우 따로 오류는 발생하지 않는데 주문 목록을 보면 회원명이 보이지 않습니다. 또한 주문할때마다 member 테이블에 null값으로 행이 하나씩 추가가 됩니다. 오류가 따로 안떠서 어떻게 해결해야할지 몰라 질문드립니다. 구글 드라이브에 파일올립니다..https://drive.google.com/drive/folders/1faJLS1AmApbM9t_cW_olFKj3YLvaBfQg?usp=drive_link
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
logging.level.hello.itemserivce.repository.mybatis=trace 로깅레벨적용
강의 후반에 logging level 을 trace로 하여 확인하는데 무슨 문제인지 확인이 되지 않네요.. debug까지만 먹히고 trace는 먹히지 않습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
외래키 제약 조건
[질문 내용]강의 내용 중 "외래키를 꼭 사용해야할까?" 에 대한 물음에 두 가지 방안을 주셨는데요.빠른 처리가 중요하며 실시간 트래픽이 많은 시스템인 경우 -> "외래키를 사용하지 않는 쪽도 고려해볼만 함"돈이 왔다갔다 하는 등의 reliablity가 중요한 시스템인 경우 -> "외래키를 꼭 사용하라"그렇다면 질문이 있습니다.질문 1. 만약 외래키 제약조건이 관계형 DB에 이미 걸려있는 상태라면 Java 코드상에서는 아무런 설정 없이 비즈니스 로직을 개발해도 되나요?질문 2. 만약 외래키 제약조건이 관계형 DB에 걸려있지 않고 관계형 DB의 성능상의 이슈로 외래키 제약 조건을 애플리케이션에서 해결해야 한다면 해당 로직 또한 개발해야 하나요? 즉, JPA가 외래키 제약 조건을 체크해주는 기능이 있는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
컨트롤러 테스트 (예외처리 테스트)
// 컨트롤러 코드 @PostMapping public ResponseEntity<?> postAdd(@RequestBody @Valid PostCreateRequest postCreateRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { Map<String, String> errorMap = new HashMap<>(); for (FieldError error: bindingResult.getFieldErrors()) { errorMap.put(error.getField(), error.getDefaultMessage()); } throw new ValidationException("유효성 검사 오류", errorMap); } postService.addPost(postCreateRequest.toEntity()); return ResponseEntity.status(HttpStatus.CREATED) .body(ApiResponse.of("success", "게시글 작성 성공", null)); }// 테스트 코드 @DisplayName("게시물의 제목과 본문을 반드시 작성해야 한다.") @Test void postAddWithoutTitleOrContent() throws Exception { PostCreateRequest post = PostCreateRequest.of("", " "); Assertions.assertThrows(ValidationException.class, () -> { mvc.perform(post("/api/posts") .contentType(MediaType.APPLICATION_JSON_VALUE) .content(mapper.writeValueAsString(post))) .andDo(print()); }); } 위 컨트롤러 코드를 보면 title과 content에 빈 값이 들어가면 ValidationException이 발생하고 유효성 검사 오류가 응답되어야 합니다. 그런데 응답을 보면Body = {"status":"fail","message":"유효성 검사 오류","data":{"title":"must not be blank","content":"must not be blank"}}이렇게 정상적으로 오류 발생 응답이 옵니다. 그런데 assertThrows 테스트코드는 통과하지 못합니다. 그럼 ValidationException이 발생하지 않았다는 뜻인데 응답은 예외가 발생했을 때의 응답입니다. 왜 테스트코드를 통과하지 못하는지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JUNIT5 로 테스트시 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]JUNIT5 최신으로 테스트하고 싶어서 JUNIT5 로 테스트중인데요.12:35 시간에서 테스트중인 내용이, 예외 처리가 반대로 되어 질문드립니다. orderCount=9 면 테스트를 통과하고orderCoumt=11 이면 테스트를 통과하지 못합니다. Stock 초과 예외가 발생해야 테스트가 통과되는거 정상인것이 맞나요?이 조건이 맞다면 아래 코드는 왜 반대로 동작하는지 모르겠어서 질문드립니다 ㅜㅜ @Test public void 상품주문_재고수량초과() throws Exception { Member member = createMember(); ItemBook itemBook = createItemBook("시골 JPA", 10000, 10); int orderCount = 9; orderService.order(member.getId(), itemBook.getId(),orderCount); Assertions.assertThrows(NotEnoughStockException.class,() -> orderService.order(member.getId(), itemBook.getId(),orderCount) );
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
7분 4초 질문 있습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]7분 4초에서 작성한 jpql 쿼리를 실행하면 강의에서는 cross join으로 쿼리가 작성되는 걸 확인할 수 있는데 저는 같은 코드를 작성해서 실행했을 때 아래처럼 내부조인으로 작성되는 걸 확인했습니다.Hibernate: /* select m from Member m, Team t where m.username = t.name */ select m1_0.id, m1_0.age, m1_0.TEAM_ID, m1_0.username from Member m1_0, Team t1_0 where m1_0.username=t1_0.name 왜 그런 걸까요?