inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

런이 안 끝나고 멈추면 에러 표시가 나요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

뭐가 문제인가요? Execution failed for task ':HelloSpringApplication.main()'. > Build cancelled while executing task ':HelloSpringApplication.main()'

  • java
  • spring
  • mvc
  • spring-boot
김민주 댓글 1 좋아요 0 조회수 263

@Transactional 어노테이션 위치에 관하여 질문합니다 :)

미해결

[개념은 호옹~, 실습 빡] 스프링 부트, 입문!

홍빡 선생님 반갑습니다. 덕분에 스프링 부트에 대한 개념과 전체적인 흐름이 잘잡히고 있습니다. 아직 너무도 부족한.... ㅠㅠ 1인 그래도 부지런히 따라 가겠습니다. 다름이 아니라 선생님이 하신 코드를 따라 치면서 생각하다가 이렇게도 해도 괜찮을것같은데 혹여나 문제가 발생하면 안될거 같아서 정확히 알고자 질문드리빈다. 우선 기존에 짜셨던 코드입니다. @SpringBootTest class ArticleServiceTest { @Autowired ArticleService articleService ; @Transactional @Test void index() { // 예상 Article a = new Article( 1L, "가가가가" , "1111") ; Article b = new Article( 2L, "나나나나" , "2222") ; Article c = new Article( 3L, "다다다다" , "3333") ; List<Article> expected = new ArrayList<Article>(Arrays. asList (a , b , c)) ; // 실제 List<Article> articles = articleService.index() ; // 검증 assertEquals (expected.toString() , articles.toString()) ; } @Transactional @Test void show_성공____존재하는_id_입력() { // 예상 Long id = 1L; Article expected = new Article(id , "가가가가" , "1111") ; // 실제 Article article = articleService.show (id) ; // 검증 assertEquals (expected.toString() , article.toString()) ; } 제가 말씀드리고 싶은 부분은 저 롤백역할을 하려는 Transactional 어노테이션?? 에 관한 이야기인데요. 테스트 코드가 랜덤으로 진행이 되는건지는 정확히 모르겠습니다. 그런데 Transactional을 초반에 설정하면 어떨까요 ? 우선 그렇게 해서 2번을 돌려보았는데 테스트 코드 2번 다 성공했습니다. 예를들어서 @Trasactional @SpringBootTest class ArticleServiceTest { @Autowired ArticleService articleService ; @Test void index() { // 예상 Article a = new Article( 1L, "가가가가" , "1111") ; Article b = new Article( 2L, "나나나나" , "2222") ; Article c = new Article( 3L, "다다다다" , "3333") ; List<Article> expected = new ArrayList<Article>(Arrays. asList (a , b , c)) ; // 실제 List<Article> articles = articleService.index() ; // 검증 assertEquals (expected.toString() , articles.toString()) ; } @Test void show_성공____존재하는_id_입력() { // 예상 Long id = 1L; Article expected = new Article(id , "가가가가" , "1111") ; // 실제 Article article = articleService.show (id) ; // 검증 assertEquals (expected.toString() , article.toString()) ; } 이런식으로요!! 그러면 일일이 작업을 안해도될것같은데 혹시나 이게 잘못될수도 있을까봐 질문드려봅니다!

  • spring-boot
이정완 댓글 1 좋아요 1 조회수 469

cannot resolve symbol 'name'

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] cannot resolve symbol 'name'이라는 오류가 계속 떠요ㅜㅜ 뭐가 잘못된 건가요??

  • java
  • spring
  • mvc
  • spring-boot
옹기종기 댓글 1 좋아요 0 조회수 384

static inner class 에 대해 궁금합니다

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요. DTO를 static inner class로 작성했을 때 멀티스레딩 환경에서 동시성 위험이 있는지에 대해 궁금합니다. 예를 들어 아래와 같이 DTO를 작성하고 사용한다고 했을 때 public class UserDto { public static class Request1 { int id; String name; @Builder private Request1(int id, String name){ this.id = id; this.name = name; } } public static class Request2 { private final int id; private final String name; @Builder private Request2(int id, String name){ this.id = id; this.name = name; } } } 우선 기본적으로 static inner class의 경우 outer 클래스의 인스턴스가 뜨지 않아도 inner 클래스의 인스턴스를 띄울 수 있습니다. 그래서 Builder 패턴을 통해 Request1의 인스턴스를 생성한다면, 롬복의 @Builder를 까보면 결국 public static class RequestBuilder 에서 Request 객체를 만들고 이를 반환하는 방식으로 되어 있는데 반환하고 RequestBuilder 객체는 GC에 반환된다고 들었습니다. 어쨌든 그래서 Request1의 객체가 생성되면 멤버 변수가 final이 아니기에 수정될 여지가 존재하는데, Heap 메모리에 새로운 객체가 생길것이고 Heap 메모리에 생성된 객체가 수정될 수 있다면 다른 스레드가 객체의 상태를 변경할 수 있으니 thread-safe 하지 않을 수 있겠다는 생각이 들었습니다. 만약 Request2처럼 멤버 변수들을 final로 사용한다면 thread-safe 해질 수 있지 않나 라는 생각인데 맞는 생각인지 잘 모르겠어서 질문 남깁니다. 감사합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
brian654321 댓글 1 좋아요 0 조회수 1465

서비스 로직 질문입니다.

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요, 강사님. loanBook() 서비스 로직 관련 질문입니다. 강의를 듣기 전 혼자 작성해보았는데요, Book book = bookRepository.findByName(request.getBookName()); if(book == null) { throw new IllegalArgumentException("대출할 책이 존재하지 않습니다."); } UserLoanHistory userLoanHistory = userLoanHistoryRepository.findByBookName(book.getName()); if(userLoanHistory.getBookName() == request.getBookName()) { throw new IllegalArgumentException("이미 대출된 책 입니다."); } userLoanHistoryRepository.save(new UserLoanHistory(request.getUserName(), request.getBookName())); 위와 같이 작성해보았습니다. 제가 생각한 로직은 책이 존재하는지 찾고 존재한다면, 책 이름으로 대출 도메인에서 정보 가져와서 대출 정보의 책 이름과 대출하려는 책 이름이 같으면 예외처리를 하고 대출이 가능하면 UserLoanHistory 객체를 저장한다. 입니다. 하지만 userLoanHistoryRepository.findByBookName(book.getName()) 이 부분에서 findByBookName 메소드가 실행되지 않는 것 같습니다.(레포지토리에는 작성해주었습니다.) 그 이유가 UserLoanHistory도메인과 Book도메인이 연결되지 않았기 때문일까요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
jd 댓글 1 좋아요 0 조회수 406

section3 와 section4 32강 질문입니다!

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요, 강사님. 항상 좋은 강의 너무 감사드립니다. section3과 section4 32강을 들으면서 질문이 생겨서 글 남기게 되었습니다. 인스턴스화를 new를 사용해서 객체로 만들어준다고 이해하면 될까요? 예를 들어 User.class를 Board.class에서 사용할 때 User user = new User()로 만드는 것이 인스턴스화인지 궁금합니다. 스프링 컨테이너에 대해 맞게 이해한 것인지 궁금합니다. 제가 이해한 바로는 컨테이너는 스프링 빈들을 대신 인스턴스화하고, 빈들끼리의 관계를 자동으로 맺어주고(의존성 자동으로 설정), 생성자를 통해 스프링 빈들끼리 서로 사용이 가능하게 한다는 것입니다. 이해한 개념이 맞는지 궁금합니다. returnBook관련 질문입니다. loanBook의 코드를 최대한 재활용해서 작성해보았는데요, @Transactional public void returnBook(BookReturnRequest request) { Book book = bookRepository.findByName(request.getBookName()); if(book == null) { throw new IllegalArgumentException("대출할 책이 존재하지 않습니다."); } // 유저 찾고 User user = userRepository.findByName(request.getUserName()); if(user == null) { throw new IllegalArgumentException("사용자가 존재하지 않습니다."); } // 이미 대출 중인 책인지 확인하고 if(userLoanHistoryRepository.existsByBookNameAndIsReturn(book.getName(), true)) { throw new IllegalArgumentException("이미 반납된 책입니다."); } // 책 찾고, 반납 UserLoanHistory history = userLoanHistoryRepository.findByBookName(book.getName()); history.returnBook(); } 테스트 결과, 딱히 이상이 없어보입니다. existsByBookNameAndIsReturn(book.getName(), true)를 사용해도 괜찮을까요? 감사합니다!

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
jd 댓글 1 좋아요 1 조회수 341

엔티티 매니저에 대해!!!!

미해결

실전! 스프링 데이터 JPA

[벌크성 수정 쿼리] 강의 11:20쯤에 "같은 트랜잭션이면 같은 엔티티 매니저를 불러온다" 라고 강사님이 언급을 하셨습니다. 질문 : 엔티티 매니저는 싱글톤 객체처럼 딱 1개만 가지고 재활용하면서 사용하는 것이 아니라, 트랜잭션이 실행될 때[마다] 새로운 엔티티 매니저가 생성되는 건가요??

  • java
  • spring
  • spring-boot
  • jpa
김진영 댓글 1 좋아요 0 조회수 461

Service와 Dto

해결됨

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

강의를 보던 중에 궁금한 점이 있어서 질문 남겨요! 결론부터 말씀드리자면 Service 레이어에서 dto를 사용해도 되는지, dto는 어떤 계층까지 사용해도 되는지에 대해 궁금합니다! 저는 보통 사용할 때 UI <-> Controller 사이에서 데이터를 교환하기 위해 dto를 사용하고, Service 에서는 비즈니스 로직 수행 후 엔티티를 반환하는? 그런 식으로 진행해왔는데 강의에서 보면 Sevice에서도 dto를 바로 반환해서 사용하더라구요.. dto라는게 data transfer object라는 의미를 가지고 있으니 굳이 UI와 Controller 관계가 아니여도 계층과 계층간의 데이터를 이동할 때 dto를 만들어서 사용해도 되는 건가요?? 감사합니다!!

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩토링
김효권 댓글 1 좋아요 2 조회수 1044

18강 GET API return

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

delete, post, put api에서는 함수 불러오기만 했는데 get api에서는 왜 return을 써주나요?? @GetMapping("/user") public List<UserResponse> getUsers() { return userService.getUsers(); } public List<UserResponse> getUsers() { return userRepository.getUsers(); }

  • java
  • spring
  • spring-boot
허수경 댓글 1 좋아요 1 조회수 434

스프링 2.7.x 사용자 오류

해결됨

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

오류 난 거 몇 가지 적겠습니다. 이제 User 클래스에 @Table(name = "users") 붙여줘야 합니다. h2 버전 올라가면서 테이블 이름 user를 사용 못 합니다. 9:15에서 실행하면 중간에 에러 떠요. 15:44 sql: init: mode: always 그리고 이전까지 h2가 잘 실행됐는데 이번 편에서 localhost:8080/h2-console 접속 시 whitelabel이 계속 나오고 Application 실행 시에 h2가 실행된다는 메시지도 안 나오는 미친 에러 걸려서 (h2 로그 안 나옴) 해결법을 못찾아서 압축하고 드라이브 올리고 마지막으로 확인차 다운받아서 확인해 봤는데 다시 h2 실행이 잘 되네요..? 왜 그런지 아시는 분 댓글 부탁드립니다 ㅎㅎ

  • spring-boot
  • jpa
intshc 댓글 1 좋아요 1 조회수 577

extenal libraies 목록이 안뜹니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요 이번 강의로 인텔리제이를 공부하고있는 학생입니다. 초반 부분 강사님께서 extenal libraies 목록을 펼치셔서 보여주셨는데 , 제 프로젝트 창에서 extenal libraies의 목록을 보여주는 화살표가 아예 뜨질 않습니다.

  • java
  • spring
  • mvc
  • spring-boot
panguse1 댓글 2 좋아요 0 조회수 248

작성글 저장2 - 클래스 분리

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.selfstudy.request.PostCreate]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com.selfstudy.request.PostCreate (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 2] 안녕하세요 호돌님, 강의의 '작성글 저장2 - 클래스 분리' 파트 초반부분에서 영상대로 따라했는데 테스트가 실패하여서 관련 오류를 찾아 PostCreate 클래스에 @NoArgsConstructor 어노테이션을 이용해 기본생성자를 추가하는 방법으로 오류를 해결했습니다. 그런데 영상에선 분명히 PostCreate 클래스에 따로 기본생성자를 추가한 것이 안보이는데 어떤 차이로인해 오류가 발생한 것인지 궁금합니다

  • vue.js
  • aws
  • spring-boot
  • jpa
  • spring-security
nose딩 댓글 1 좋아요 1 조회수 519

jpa save 질문

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 보통 jpa에서 제공하는 save는 Customer를 저장하고 싶은 경우(모든 컬럼에 값이 설정돼있지 않음) Customer customer = new Customer(); customer.setCustomerName("aa"); customerRepository.save (customer); setter로 설정하기엔 컬럼이 너무 많은데 이게 맞는건지 아니면 컨트롤러에서 파라미터를 OrderVO로 받아서 Entity로 변환한 다음 저장하는게 맞는지 잘 모르겠습니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
이혜정 댓글 1 좋아요 0 조회수 413

인텔리J에서 오픈한 프로젝트 스프링부트 설정관련 질문드립니다.

미해결

토비의 스프링 부트 - 이해와 원리

전 윈도우 기반에서 선생님 온라인 강의 청취하고 있습니다. git besh에서 sdkman으로 springboot 설치해서 터미널 상에서 spring 서버로 테스트까진 확인하고 터미널에서 인텔리J로 접속이 되지않아 그냥 인텔리J에서 프로젝트 오픈하여 수업을 따라가고 있었는데 인텔리J와 스프링부트 연동하는 방법을 몰라서 질문 남깁니다.

  • spring
  • spring-boot
  • spring-jdbc
terry8987 댓글 1 좋아요 0 조회수 840

MemberRepositoryTest 실행 오류

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

application 파일쪽에 띄어쓰기가 2칸으로 되어있는지 접속 url에 문제가 있는지 체크를 해봐도 특이 사항은 없었는데요 MemberRepositoryTest 실행 시킬때 테이블 생성이 정상적으로 이루어 지고 있지 않습니다... could not prepare statement; SQL [call next value for hibernate_sequence]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [call next value for hibernate_sequence]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException( HibernateJpaDialect.java:259 ) at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible( HibernateJpaDialect.java:233 ) at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible( AbstractEntityManagerFactoryBean.java:551 ) at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible( ChainedPersistenceExceptionTranslator.java:61 ) at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary( DataAccessUtils.java:242 ) at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke( PersistenceExceptionTranslationInterceptor.java:152 ) at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:186 ) at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:763 ) at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept( CglibAopProxy.java:708 ) at app//com.todel.sample.MemberRepository$$EnhancerBySpringCGLIB$$cc977298.save(<generated>) at app//com.todel.sample.MemberRepositoryTest.testMember( MemberRepositoryTest.java:25 ) at java.base@11.0.16.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@11.0.16.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) at java.base@11.0.16.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base@11.0.16.1/java.lang.reflect.Method.invoke( Method.java:566 ) at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod( ReflectionUtils.java:725 ) at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed( MethodInvocation.java:60 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed( InvocationInterceptorChain.java:131 ) at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept( TimeoutExtension.java:149 ) at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod( TimeoutExtension.java:140 ) at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod( TimeoutExtension.java:84 ) at app//org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0( ExecutableInvoker.java:115 ) at app//org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0( ExecutableInvoker.java:105 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed( InvocationInterceptorChain.java:106 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed( InvocationInterceptorChain.java:64 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke( InvocationInterceptorChain.java:45 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke( InvocationInterceptorChain.java:37 ) at app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke( ExecutableInvoker.java:104 ) at app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke( ExecutableInvoker.java:98 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7( TestMethodTestDescriptor.java:214 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod( TestMethodTestDescriptor.java:210 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:135 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:66 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:151 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base@11.0.16.1/java.util.ArrayList.forEach( ArrayList.java:1541 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base@11.0.16.1/java.util.ArrayList.forEach( ArrayList.java:1541 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute( SessionPerRequestLauncher.java:53 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses( JUnitPlatformTestClassProcessor.java:99 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000( JUnitPlatformTestClassProcessor.java:79 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop( JUnitPlatformTestClassProcessor.java:75 ) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop( SuiteTestClassProcessor.java:62 ) at java.base@11.0.16.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@11.0.16.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) at java.base@11.0.16.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base@11.0.16.1/java.lang.reflect.Method.invoke( Method.java:566 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:36 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:24 ) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch( ContextClassLoaderDispatch.java:33 ) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke( ProxyDispatchAdapter.java:94 ) at com.sun.proxy.$Proxy2.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run( TestWorker.java:193 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName( TestWorker.java:129 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:100 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:60 ) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute( ActionExecutionWorker.java:56 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:113 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:65 ) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run( GradleWorkerMain.java:69 ) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main( GradleWorkerMain.java:74 ) Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement at app//org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert( SQLExceptionTypeDelegate.java:63 ) at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert( StandardSQLExceptionConverter.java:37 ) at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert( SqlExceptionHelper.java:113 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:186 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement( StatementPreparerImpl.java:75 ) at app//org.hibernate.id.enhanced.SequenceStructure$1.getNextValue( SequenceStructure.java:105 ) at app//org.hibernate.id.enhanced.NoopOptimizer.generate( NoopOptimizer.java:40 ) at app//org.hibernate.id.enhanced.SequenceStyleGenerator.generate( SequenceStyleGenerator.java:534 ) at app//org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId( AbstractSaveEventListener.java:114 ) at app//org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient( DefaultPersistEventListener.java:185 ) at app//org.hibernate.event.internal.DefaultPersistEventListener.onPersist( DefaultPersistEventListener.java:128 ) at app//org.hibernate.event.internal.DefaultPersistEventListener.onPersist( DefaultPersistEventListener.java:55 ) at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener( EventListenerGroupImpl.java:107 ) at app//org.hibernate.internal.SessionImpl.firePersist( SessionImpl.java:756 ) at app//org.hibernate.internal.SessionImpl.persist( SessionImpl.java:742 ) at java.base@11.0.16.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@11.0.16.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) at java.base@11.0.16.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base@11.0.16.1/java.lang.reflect.Method.invoke( Method.java:566 ) at app//org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke( SharedEntityManagerCreator.java:315 ) at app//com.sun.proxy.$Proxy98.persist(Unknown Source) at app//com.todel.sample.MemberRepository.save( MemberRepository.java:15 ) at app//com.todel.sample.MemberRepository$$FastClassBySpringCGLIB$$e449817d.invoke(<generated>) at app//org.springframework.cglib.proxy.MethodProxy.invoke( MethodProxy.java:218 ) at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint( CglibAopProxy.java:793 ) at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:163 ) at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:763 ) at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke( PersistenceExceptionTranslationInterceptor.java:137 ) ... 90 more Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Sequence "HIBERNATE_SEQUENCE" not found; SQL statement: call next value for hibernate_sequence [90036-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:632 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.command.Parser.readSequence( Parser.java:8471 ) at org.h2.command.Parser.readTermWithIdentifier( Parser.java:5347 ) at org.h2.command.Parser.readTermWithIdentifier( Parser.java:5217 ) at org.h2.command.Parser.readTerm( Parser.java:4901 ) at org.h2.command.Parser.readFactor( Parser.java:3398 ) at org.h2.command.Parser.readSum( Parser.java:3385 ) at org.h2.command.Parser.readConcat( Parser.java:3350 ) at org.h2.command.Parser.readCondition( Parser.java:3132 ) at org.h2.command.Parser.readExpression( Parser.java:3053 ) at org.h2.command.Parser.parseCall( Parser.java:6980 ) at org.h2.command.Parser.parsePrepared( Parser.java:765 ) at org.h2.command.Parser.parse( Parser.java:689 ) at org.h2.command.Parser.parse( Parser.java:661 ) at org.h2.command.Parser.prepareCommand( Parser.java:569 ) at org.h2.engine.SessionLocal.prepareLocal( SessionLocal.java:631 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:288 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.lang.Thread.run (Unknown Source) at app//org.h2.message.DbException.getJdbcSQLException( DbException.java:632 ) at app//org.h2.engine.SessionRemote.readException( SessionRemote.java:637 ) at app//org.h2.engine.SessionRemote.done( SessionRemote.java:606 ) at app//org.h2.command.CommandRemote.prepare( CommandRemote.java:78 ) at app//org.h2.command.CommandRemote.<init>( CommandRemote.java:50 ) at app//org.h2.engine.SessionRemote.prepareCommand( SessionRemote.java:480 ) at app//org.h2.jdbc.JdbcConnection.prepareCommand( JdbcConnection.java:1116 ) at app//org.h2.jdbc.JdbcPreparedStatement.<init>( JdbcPreparedStatement.java:92 ) at app//org.h2.jdbc.JdbcConnection.prepareStatement( JdbcConnection.java:288 ) at app//com.zaxxer.hikari.pool.ProxyConnection.prepareStatement( ProxyConnection.java:337 ) at app//com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement( HikariProxyConnection.java ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare( StatementPreparerImpl.java:90 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:176 ) ... 114 more

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
dream.dev010 댓글 1 좋아요 -1 조회수 1025

Spring security 6 이후 client-authentication-method 설정 방법 공유

미해결

스프링 시큐리티 OAuth2

yml에 client-authentication-method: POST 로 설정하면 아마 안될 것 입니다.ㅠㅠ client-authentication-method: client_secret_post 로 설정하면 해결됩니다.. 이것 때문에 한참 고생했네요.....

  • java
  • spring
  • spring-boot
  • oauth
개발하는쿼카 댓글 1 좋아요 1 조회수 1557

h2 데이터베이스 오류

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 맥을 쓰고 있는데 h2 데이터베이스 접속이 안되고 이런 문구가 나와요.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
지우개 댓글 1 좋아요 0 조회수 685

TRUNCATE TABLE 시 AUTO_INCREMENT 컬럼 1로 초기화

미해결

실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD

MySQL이나 H2 에서 TRUNCATE TABLE 시 AUTO_INCREMENT 컬럼값도 1로 초기화되는 걸로 알고 있습니다. 그런데 강의에서는 TRUNCATE 후 AUTO_INCREMENT 컬럼인 ID 를 1부터 다시 시작하게 하는 쿼리를 추가하셔서 어떤게 맞는건지 헷갈립니다 좋은 강의 감사합니다

  • tdd
  • spring-boot
  • pojo
  • 소프트웨어-테스트
  • api
pgrrr119 댓글 1 좋아요 2 조회수 3563

List로 만든 뒤 Map으로 변환시 메모리 사용

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. V5를 만들면서 List를 만든 뒤에 이것을 다시 Map으로 변환하셨는데 이럴 경우 메모리 사용량이 많아져 OOM이 발생하기 쉬울 수 있다고 생각했습니다. 제가 생각한게 맞을까요? 만약 맞다면 em에서 받아올때부터 stream으로 받아서 map으로 만들면 이러한 문제가 해결될까요?

  • java
  • spring
  • spring-boot
  • jpa
mustsave 댓글 1 좋아요 0 조회수 666

tomcat runner 에러

미해결

스프링 부트 - 핵심 원리와 활용

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요, 다른 분들도 겪으셨던 것 같은데 해결방안은 딱히 없는 것 같아서 다시 글 올립니다. 저도 tomcat runner를 edit configuration에서 추가하려고 하면 설정창이 안뜨고 먹통인 문제를 겪고 있습니다. (캡쳐는 다른분들이 올려주신 질문글과 동일.) 기존에 IntelliJ Edu를 쓰고 있었는데 tomcat runner가 검색이 되지 않아 community 버젼을 새로 깔았고 이때문에 idea는 완전 깨끗한 상태입니다; (당연히 캐시를 삭제해봐도 개선이 되지 않습니다. 환경은 아래와 같습니다. 소스코드: 강의제공 코드 자바 버전 : 17 (oracle jdk 17.0.7-macos-aarch64) OS : Mac (Apple M1 Ventura 13.2.1) 인텔리제이 커뮤니티 버전: 2023.1.1 캐시삭제 외에 시도할 수 있는게 있다면 알려주세요. 감사합니다.

  • spring
  • spring-boot
  • intellij
gahan1 댓글 1 좋아요 1 조회수 1094

인기 태그

인프런 TOP Writers

주간 인기글