Order 클래스 list에 orphanRemoval=true 를 주고 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL , orphanRemoval=true) private List<OrderItem> orderItems = new ArrayList<>(); order.getOrderItems.remove(0); 를 써주면 Order-OrderItem 간의 부모자식 관계가 제거되어서 삭제되는데 추가도 되는지 궁금합니다. 주문 리스트 전체 변경을 진행하고 있습니다. Order 가 영속성 컨텍스트에 있을때 추가될 Item들 findById로 영속성 컨텍스트로 불러온 다음 OrderItem으로 만든뒤 public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this); } order.addOrderItem(orderItem1); order.addOrderItem(orderItem2); 다음과 같이 써주면 db에 추가될 수 있나요??? 제 테스트 상에서는 데이터가 입력이 되어서 부모-관계가 없어지면 삭제되고 , 부모-관계를 연결시켜주면 추가된다고 생각해도 될까요?
https://docs.confluent.io/5.5.1/connect/kafka-connect-jdbc/index.html 는 현재 메인 페이지로 이동이 되어서 다음 페이지에서 다운로드 받을수 있었습니다. https://www.confluent.io/hub/confluentinc/kafka-connect-jdbc
... (위에 기존의 코드를 반영 member1,2,3 나이 별도로 설정하지 않음 '0' 현재 persist를 통해 영속성 컨텍스트에 존재하는 상황) int resultCount = em.createQuery("update Member m set m.age = 20") .executeUpdate(); em.clear(); Member findMember = em.find(Member.class, member1.getId()); System.out.println("findMember.getAge() = " + findMember.getAge()); System.out.println("resultCount = " + resultCount); System.out.println("member1.getAge() = " + member1.getAge()); System.out.println("member2.getAge() = " + member2.getAge()); System.out.println("member3.getAge() = " + member3.getAge()); int resultCount = em.createQuery("update Member m set m.age = 20") .executeUpdate(); 이 부분은 영속성 컨텍스트와 상관 없이 DB에 바로 적용 된다고 알고 있습니다. em.clear(); 하게되면 영속성 컨텍스트를 비우게 되고, Member findMember = em.find(Member.class, member1.getId()); System.out.println("findMember.getAge() = " + findMember.getAge()); 를 하게되면 update를 통해 DB에 저장된 값을 DB에서 불러서 영속성 컨텍스트에 저장하고 해당 값을 가져오고, System.out.println("resultCount = " + resultCount); 이 값은 위에서 update를 통해 3개가 update 되었기 때문에 3이란 값이 저장되어 나오고, (궁금한 부분) System.out.println("member1.getAge() = " + member1.getAge()); System.out.println("member2.getAge() = " + member2.getAge()); System.out.println("member3.getAge() = " + member3.getAge()); 이 부분의 경우 그냥 메모리에 저장된 값을 가져오는 것이 맞나요? 디버깅을 해보기 이전에 메모리에 생성했던 값을 다시 가르키는 것 같지만 확실한지 모르겠어서 질문 남깁니다...
loadUserByUsername(String username) 에 매개변수로 들어오는 String username은 AuthenticationFilter의attemptAuthentication에서 만들어 주었던 UsernamePasswordAuthenticationToken 을 사용하는게 맞나요? 맞다면 email을 입력하였는데 어떻게 userName으로 바뀐건지 궁금합니다.
수업내용에서 item 등록 하고 조회 할때 create는 상품을 등록하는 코드인데 처음에 사용되는 createForm 코드는 어떤 코드인가요? 처음에 해당 컨트롤을 읽을때 createForm 코드가 자동으로 실행되는건가요? 만약 실행된다면 어떤 원리로 이게 바로실행되는건지 답변부탁드립니다. ㅠㅠ 강의열심히 보았는데 이해가 안되어서요 ㅠ 타임리프가 뭔가 처음에 이걸실행하는건지 ㅠㅠ /*???*/ public String createForm(Model model) { model.addAttribute("form", new BookForm()); return "items/createItemForm"; } /* 상품등록 */ @PostMapping(value = "/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:/items"; }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의 27:35부분에서 db에 멤버가 저장되어 있지 않다고 하시는데, 현재 member 엔티티는 @GenerativeValue를 사용하기 때문에 em.persist(member)하는 순간 db에 저장되고 pk값을 가져오는게 아닌가요? 혹시 제가 잘못이해하고 있는 건지 궁금합니다.
@RunWith(SpringRunner.class) @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() throws Exception { //given Member member = new Member(); member.setUsername("memberA"); //when Long saveId = memberRepository.save(member); Member findMember = memberRepository.find(saveId); //then assertThat(findMember.getId()).isEqualTo(member.getId()); assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); assertThat(member).isEqualTo(findMember); System.out.println("findMember == member: " + (findMember == member)); } } 위 코드에서 디비에 넣은 멤버와 찾은 멤버가 같은지를 비교를 isEqualTo를 사용을 하셨는데 이것은 제가 알기론 value부분만 같다면 true라는것으로 알고 있습니다. 같은 영속성 컨텍스트 안에서의 객체가 같은지 확인하려면 isSameAs가 맞지 않은지 의문이 생겼습니다!
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요. 강의를 100% 다 소화하지는 못했지만 일단 거진 한바퀴는 돌리면서 마지막에 문제가 생겨 질문 드립니다. plugins { id 'java' id 'org.springframework.boot' version '2.7.7' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id "org.asciidoctor.jvm.convert" version "3.3.2" } group = 'sample' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } configurations { compileOnly { extendsFrom annotationProcessor } asciidoctorExt } repositories { mavenCentral() } dependencies { // Spring boot implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' // test testImplementation 'org.springframework.boot:spring-boot-starter-test' // lombok compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' //테스트에서 lombok 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' // h2 runtimeOnly 'com.h2database:h2' // Guava implementation("com.google.guava:guava:32.1.1-jre") // RestDocs asciidoctorExt 'org.springframework.restdocs:spring-restdocs-asciidoctor' testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc' } tasks.named('test') { useJUnitPlatform() } ext { // 전역 변수 snippetsDir = file('build/generated-snippets') } test { outputs.dir snippetsDir } asciidoctor { inputs.dir snippetsDir configurations 'asciidoctorExt' sources { include("**/index.adoc") } baseDirFollowsSourceDir() dependsOn test } bootJar { dependsOn asciidoctor from ("${asciidoctor.outputDir}") { into 'static/docs' } } 일단 build.gradle 내용이구요. 운영체제는 윈도우 입니다. 마지막에 build 후 jar파일을 실행하여 localhost:8080/docs/index.html 을 확인해보려고 하니 접속이 되지 않아 확인해보니 resources - static 디렉토리에 index.html이 생성되지 않았음을 확인하였습니다. build 디렉토리에는 생성되어 있었구요. 몇번이나 clean 후 build를 통해 build쪽에는 index.html이 생성 되는 것을 확인 하였으나, static 패키지 하위에 docs 패키지 조차 생성되지 않아 제가 뭔가 오타를 낸건지 운영체제 문제인지 질문 드리고자 합니다. 감사합니다.
안녕하세요 querydsl로 페이징 처리를 구현하는 도중에 어려움에 부딪혀서 질문 작성하게 됐습니다! List<CloverPayDTO.PageResponse> contents = queryFactory .select(Projections.constructor( CloverPayDTO.PageResponse.class, memberInformation.memberName, member.id, member.nickName, cloverPoint.amount.sum().coalesce(0), member.regDt, member.lastLoginTime) ) .from(cloverPoint) .rightJoin(member) .on(cloverPoint.memberId.eq(member.id)) .join(memberInformation) .on(member.memberInformation.id.eq(memberInformation.id)) .where( goeStartDateAndLoeEndDate(member.regDt, searchRequest.getRegStartDate(), searchRequest.getRegEndDate()) .and(goeStartDateAndLoeEndDate(member.lastLoginTime, searchRequest.getLastLoginStartDate(), searchRequest.getLastLoginEndDate())) .and(eqKeyword(searchRequest.getKeywordType(), searchRequest.getKeyword())) ) .groupBy(memberInformation.memberName, member.id, member.nickName, member.regDt, member.lastLoginTime) .having(goeMinCloverAmountAndLoeMaxCloverAmount(searchRequest.getMinCloverAmount(), searchRequest.getMaxCloverAmount())) .orderBy(member.regDt.desc()) .offset(pageable.getOffset()) .limit(searchRequest.getSize()) .fetch(); private BooleanExpression goeMinCloverAmountAndLoeMaxCloverAmount(int minCloverAmount, int maxCloverAmount) { if (maxCloverAmount == 0) { return null; } return cloverPoint.amount.sum().coalesce(0).goe(minCloverAmount) .and(cloverPoint.amount.sum().coalesce(0).loe(maxCloverAmount)); } 위와 같이 Repository에서 데이터를 조회하고 있습니다. 페이징을 처리해야 하는 로직이라 PageableExecutionUtils를 활용하여 Page 객체를 만들어 사용하려고 하는데 group by + having 절을 활용하는 경우 countQuery를 어떤 식으로 구현해야 할지 모르겠습니다... ㅠㅠ 단순 SQL인 경우 인라인뷰를 활용하여 조건에 부합하는 count를 가져오겠는데 querydsl에서 인라인뷰는 지원하지 않는다고 알고 있습니다. 다른 방식으로 contents.size()를 넘겨서 처리할까 싶었지만 이게 최선인지 잘 모르겠기에 영한님은 이런 경우 어떤식으로 로직을 처리하시는지 알고 싶습니다!! 감사합니다!
도메인과 JPA 엔티티를 구분하려고 코드를 작성해봤습니다. @Repository @RequiredArgsConstructor public class OrderRepositoryImpl implements OrderRepository { private final OrderJpaRepository orderJpaRepository; @Override public void save(final OrderJpaEntity entity) { orderJpaRepository.save (entity); } @Override public Optional<OrderJpaEntity> findById(final long orderId) { return orderJpaRepository.findById(orderId) } } 이러한 방식으로 JpaRepository를 주입받고 OrderRepository를 구현하는 방식입니다. public interface OrderRepository { void save(final OrderJpaEntity entity); Optional<OrderJpaEntity> findById(final long orderId); } 그런데 이때 변경감지를 사용하려면 Order가 아닌 OrderJpaEntity를 반환해야하는데 이렇게 하면 결국 Repository에도 JPA 엔티티에 의존하기 때문에 분리를 잘 하지 못했다는 생각이 듭니다.. 혹시 도메인과 JPA 엔티티를 분리한다면 어떠한 방식으로 하시나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 데이터베이스 스키마 자동생성 부분에서 hibernate.hbm2ddl.auto 속성이 적용되지 않습니다. 강의에서는 drop table Member if exists 로그가 찍히는데 저는 속성이 안되는 것인지 아무것도 뜨지 않습니다. Table도 다시 생성되어야하는데 생성되지 않습니다. H2 버전은 1.4.200입니다. 프로젝트 zip 파일입니다. https://drive.google.com/file/d/1-USqDSZYjzSjQuMZ4t8cQSMsS6j4ez-s/view?usp=drive_link
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 위처럼 비밀번호랑 경로 전부 같게 하고 연결해서 커밋해보면 커밋이 되지 않는데 어찌해야하나요...
안녕하세요 재밌고 알찬 강의 제공해 주셔서 감사합니다. jpa 와 같이 findById 같은 기본적으로 제공해주는 메서드는 따로 테스트를 안해봐도 될거 같은데.. queryDsl 식으로 커스텀한 쿼리를 호출할때 테스트 방법은 어떻게 해야할지 궁금합니다.. h2 와 같은 임베디드디비로 쿼리 조건과 데이터가 잘 나오는지 테스트도 짜고, 다른 인터페이스를 상속받은 구현체의 메서드에서 메모리를 사용해 stream 과 filter 식으로 데이터를 반환하는 구현체를 테스트로 다시 넣어야하는지.. h2로 테스트코드를 짜고, 확인 후, 해당 테스트 코드는 지워버려야 하는지.. 강사님은 어떻게 하고 있는지 궁금합니다.. 감사합니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요! 강의 너무 잘 듣고 있습니다. 26강을 따라하던 중, 다음과 같은 에러가 났는데 혼자서 해결이 되지 않아 질문 드립니다. 어떤 코드를 복붙해야할지 모르겠어서 일단 에러메시지만 복사하였습니다! 감사합니다..!! <추가 07.18. 오후 12시> User.java 에 @Entity 어노테이션이 빠져 있어서 추가를 하니 문제가 해결되었습니다. 문제는 해결되었으나, 에러 메시지 해석이 너무 어려워서 이점만 도움을 주시면 감사하겠습니다!! 2023-07-18 01:41:59.121 ERROR 8616 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController' defined in file [C:\Users\1876007\Desktop\study\library-app\build\classes\java\main\com\group\libraryapp\controller\user\UserController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userServiceV2' defined in file [C:\Users\1876007\Desktop\study\library-app\build\classes\java\main\com\group\libraryapp\service\UserServiceV2.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository' defined in com.group .libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class com.group .libraryapp.domain.user.User at org.springframework.beans.factory.support .ConstructorResolver.createArgumentArray( ConstructorResolver.java:800 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .ConstructorResolver.autowireConstructor( ConstructorResolver.java:229 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.autowireConstructor( AbstractAutowireCapableBeanFactory.java:1372 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBeanInstance( AbstractAutowireCapableBeanFactory.java:1222 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:582 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .DefaultListableBeanFactory.preInstantiateSingletons( DefaultListableBeanFactory.java:955 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:918 ) ~[spring-context-5.3.24.jar:5.3.24] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) ~[spring-context-5.3.24.jar:5.3.24] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh( ServletWebServerApplicationContext.java:147 ) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:1303 ) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:1292 ) ~[spring-boot-2.7.6.jar:2.7.6] at com.group .libraryapp.LibraryAppApplication.main( LibraryAppApplication.java:10 ) ~[main/:na] Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userServiceV2' defined in file [C:\Users\1876007\Desktop\study\library-app\build\classes\java\main\com\group\libraryapp\service\UserServiceV2.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository' defined in com.group .libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class com.group .libraryapp.domain.user.User at org.springframework.beans.factory.support .ConstructorResolver.createArgumentArray( ConstructorResolver.java:800 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .ConstructorResolver.autowireConstructor( ConstructorResolver.java:229 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.autowireConstructor( AbstractAutowireCapableBeanFactory.java:1372 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBeanInstance( AbstractAutowireCapableBeanFactory.java:1222 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:582 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate( DependencyDescriptor.java:276 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .DefaultListableBeanFactory.doResolveDependency( DefaultListableBeanFactory.java:1391 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .DefaultListableBeanFactory.resolveDependency( DefaultListableBeanFactory.java:1311 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .ConstructorResolver.resolveAutowiredArgument( ConstructorResolver.java:887 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .ConstructorResolver.createArgumentArray( ConstructorResolver.java:791 ) ~[spring-beans-5.3.24.jar:5.3.24] ... 19 common frames omitted Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository' defined in com.group .libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class com.group .libraryapp.domain.user.User at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate( DependencyDescriptor.java:276 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .DefaultListableBeanFactory.doResolveDependency( DefaultListableBeanFactory.java:1391 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .DefaultListableBeanFactory.resolveDependency( DefaultListableBeanFactory.java:1311 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .ConstructorResolver.resolveAutowiredArgument( ConstructorResolver.java:887 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .ConstructorResolver.createArgumentArray( ConstructorResolver.java:791 ) ~[spring-beans-5.3.24.jar:5.3.24] ... 33 common frames omitted Caused by: java.lang.IllegalArgumentException: Not a managed type: class com.group .libraryapp.domain.user.User at org.hibernate.metamodel.internal.MetamodelImpl.managedType( MetamodelImpl.java:583 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.metamodel.internal.MetamodelImpl.managedType( MetamodelImpl.java:85 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.springframework.data.jpa.repository.support .JpaMetamodelEntityInformation.<init>( JpaMetamodelEntityInformation.java:75 ) ~[spring-data-jpa-2.7.6.jar:2.7.6] at org.springframework.data.jpa.repository.support .JpaEntityInformationSupport.getEntityInformation( JpaEntityInformationSupport.java:66 ) ~[spring-data-jpa-2.7.6.jar:2.7.6] at org.springframework.data.jpa.repository.support .JpaRepositoryFactory.getEntityInformation( JpaRepositoryFactory.java:233 ) ~[spring-data-jpa-2.7.6.jar:2.7.6] at org.springframework.data.jpa.repository.support .JpaRepositoryFactory.getTargetRepository( JpaRepositoryFactory.java:182 ) ~[spring-data-jpa-2.7.6.jar:2.7.6] at org.springframework.data.jpa.repository.support .JpaRepositoryFactory.getTargetRepository( JpaRepositoryFactory.java:165 ) ~[spring-data-jpa-2.7.6.jar:2.7.6] at org.springframework.data.jpa.repository.support .JpaRepositoryFactory.getTargetRepository( JpaRepositoryFactory.java:76 ) ~[spring-data-jpa-2.7.6.jar:2.7.6] at org.springframework.data.repository.core.support .RepositoryFactorySupport.getRepository( RepositoryFactorySupport.java:325 ) ~[spring-data-commons-2.7.6.jar:2.7.6] at org.springframework.data.repository.core.support .RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$5( RepositoryFactoryBeanSupport.java:323 ) ~[spring-data-commons-2.7.6.jar:2.7.6] at org.springframework.data .util.Lazy.getNullable( Lazy.java:231 ) ~[spring-data-commons-2.7.6.jar:2.7.6] at org.springframework.data .util.Lazy.get( Lazy.java:115 ) ~[spring-data-commons-2.7.6.jar:2.7.6] at org.springframework.data.repository.core.support .RepositoryFactoryBeanSupport.afterPropertiesSet( RepositoryFactoryBeanSupport.java:329 ) ~[spring-data-commons-2.7.6.jar:2.7.6] at org.springframework.data.jpa.repository.support .JpaRepositoryFactoryBean.afterPropertiesSet( JpaRepositoryFactoryBean.java:144 ) ~[spring-data-jpa-2.7.6.jar:2.7.6] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ~[spring-beans-5.3.24.jar:5.3.24] ... 44 common frames omitted Process finished with exit code 1
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 넵 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 넵 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 넵 [질문 내용] 인텔리J 사용하지 않고 스프링부트로만 사용하는 경우 여기서 어떻게 하면 될까요?
main resources/data.sql로 설정한 파일이 테스트시 적용이 되지만 @BeforeEach 메소드 내부의 UserRepository.deleteAll()동작으로 인하여 테스트시 User테이블이 비어있는 것 같습니다. 알아낸게 기분좋아서 공유드립니다. 호돌님 정말 좋은 강의 만들어주셔서 많이 배우고있습니다. 감사합니다!!