묻고 답해요
133만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
섹션9 vue
섹션9 시작할 때 vue 페이지를 깃헙에만 올려놓은 상태라고 하셨는데 참고해서 학습을 진행하고 싶은데 올려놓으신 깃헙 주소 좀 알려주실 수 있을까요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
OrderSimpleApiController에서 LazyInitializationException
공부를 하다가 이전에 LazyInitializationException을 만난 적이 있었습니다. 그 때 원인이 Controller 단에서 Lazy로 가져오는 객체를 강제 초기화 할 때 일어나는 것임을 알 게 됐고 페치 조인으로 문제를 해결했었습니다. 그런데 왜 OrderSimpleApiController.java에서 ordersV1와 ordersV2()는 Controller 단임에도 영속성 컨텍스트 내부에서 관리될 수 있는건가요? 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
같은 서비스간에 api 통신
강의에서는 다른 서비스 간에 통신을 위해 open feign 이나 rest template을 사용하고 있는데 같은 서비스 안에서 어떤 api가 다른 api를 호출할때도 마찬가지로 둘중 하나를 사용하나요? 그리고 그때는 @FeignClient url 주소값을 자기 자신으로 넣으면 되나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Remote Git Repository
제목 : Remote Git Repository 수업에서컨피그 설정 레포지토리의 브랜치가 main 이면http://127.0.0.1:8888/ecommerce/dev접속하여도 정보를 가져오지못하는데..무조건 브랜치가 master 이어야 하나요?master 이면 정보를 가져옵니다..
-
해결됨실전! Querydsl
Querydsl 자동 join
안녕하세요? JPA 활용 2편과 Querydsl 편을 수강하고 나서 코드를 작성하다가 알게 된 내용인데 원래 그런 것인지 알고 싶어서 여쭤봅니다.JPA 활용 2편에서 Order와 member, delivery를 한번에 조회하는 OrderSimpleApiController에서 V4를 Querydsl 버전으로 바꾸었습니다.OrderSimpleApiController.javaOrderSimpleQueryDto@Data public class OrderSimpleQueryDto { private Long orderId; private String name; private LocalDateTime orderDate; private OrderStatus orderStatus; private Address address; @QueryProjection public OrderSimpleQueryDto(Long orderId, String name, LocalDateTime orderDate, OrderStatus orderStatus, Address address){ this.orderId = orderId; this.name = name; // LAZY 초기화 this.orderDate = orderDate; this.orderStatus = orderStatus; this.address = address; // LAZY 초기화 } }orderSimpleQueryRepository.findOrderDtosQuerydslpublic List<OrderSimpleQueryDto> findOrderDtosQuerydsl(){ JPAQueryFactory queryFactory = new JPAQueryFactory(em); return queryFactory .select(new QOrderSimpleQueryDto( order.id.as("orderId"), order.member.name, order.orderDate, order.status, order.delivery.address) ) .from(order) .fetch(); }이렇게 V4버전을 바꿨는데, 딱히 제가 join을 날린 게 없는데 join이 날라갑니다. 오히려 제가 fetchJoin용으로 코드를 작성하려고 from절의 아랫 부분에 다른 코드를 작성하는게 불가능했습니다. join(order.delivery, order).fetchJoin() 같은 코드는 작성이 안되고 join(order.delivery).fetchJoin()은 semantic 오류라는 에러코드가 날라옵니다.Dto로 작성할 때 여러 테이블을 페치 조인해야하는 상황에서는 Querydsl을 어떻게 사용해야하나요? 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
데이터베이스 업데이트 시 벌크성 수정 쿼리를 사용할 수 없을 때
JPA를 활용하여 여러 개의 row들을 업데이트하는 상황입니다.하지만 전체를 동일하게 수정하는 것이 아니고, 하나의 Service 로직 상에서 여러 개의 row들을 서로 다른 값으로 업데이트해야하는 상황입니다. 이 경우에는 각 데이터에 대해서 일일이 변경 감지를 통해 update 하는 게 최선일까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Hello.java 출력 오류 내용 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 실전! 스프링부트 JPA 활용편 1편 프로젝트 생성 부분에서 hello 부분 string이 왜 잘못되었는지 몰라서 질문 남깁니다.어떻게 해야 출력 가능한지 알고 싶습니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
배치사이즈 100 설정시 in절 100개에 대한 내용입니다.
https://ttl-blog.tistory.com/1202데이터는 3개있는데쿼리에서 in절에 100개가 찍혀서 검색하다보니 이런글이 있네요결론:dependency 의 하이버네이트 버전을 변경해야한다.hibernate-core:6.2.0.CR2 디펜던시 버전은 해당 오류에 대한 적용이 안되어있어서 다운그레이드 해야하네요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
빈 중복 충돌 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]2024-02-18T19:26:55.314+09:00 INFO 21364 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Starting JpashopApplication using Java 17.0.3 with PID 21364 (C:\Users\HJ\Documents\GitHub\Spring-Study\out\production\classes started by HJ in C:\Users\HJ\Documents\GitHub\Spring-Study)2024-02-18T19:26:55.316+09:00 INFO 21364 --- [ restartedMain] jpabook.jpashop.JpashopApplication : No active profile set, falling back to 1 default profile: "default"2024-02-18T19:26:55.361+09:00 INFO 21364 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable2024-02-18T19:26:55.361+09:00 INFO 21364 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'2024-02-18T19:26:55.488+09:00 WARN 21364 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [jpabook.jpashop.JpashopApplication]2024-02-18T19:26:55.740+09:00 ERROR 21364 --- [ restartedMain] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [jpabook.jpashop.JpashopApplication] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:179) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:416) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:289) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.2.jar:3.2.2] at jpabook.jpashop.JpashopApplication.main(JpashopApplication.java:10) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.2.2.jar:3.2.2]Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'memberRepository' for bean class [jpabook.jpashop.repository.MemberRepository] conflicts with existing, non-compatible bean definition of same name and class [jpabook.jpashop.MemberRepository] at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:361) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:288) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:128) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:306) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:246) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:197) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:165) ~[spring-context-6.1.3.jar:6.1.3] ... 18 common frames omittedProcess finished with exit code 0 -----------------------------------------다음과 같은 에러코드를 받았습니다 위에 내용을 보면Annotation-specified bean name 'memberRepository' for bean class [jpabook.jpashop.repository.MemberRepository] conflicts with existing, non-compatible bean definition of same name and class [jpabook.jpashop.MemberRepository]해당 문구가 있는 것을 보고 같은 이름의 클래스가 2개 존재하여 bean이 중복되어 충돌이 일어난 것을 확인 하였는데 jpabook.jpashop.MemberRepository를 삭제했는데도 불구하고 해당 에러가 계속 발생합니다 왜일까요? ..존재하지 않는 사진 첨부하겠습니다.
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
create test 부분에서 시퀀스 문제가 있습니다.
단일 테스트는 문제 없지만 전체 테스트 진행 시테이블의 id의 시퀀스가 계속 증가 하는 문제로 jpa save 시 id 1에 저장하려는 문제가 발생하여user-service-test-data.sql -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (1, 'kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (2, 'kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0);post-service-test-data.sql -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (1, 'kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (2, 'kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0); -- insert into `posts` (`id`, `content`, `created_at`, `modified_at`, `user_id`) -- values (1, 'helloworld', 1678530673958, 0, 1); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0); insert into `posts` (`content`, `created_at`, `modified_at`, `user_id`) values ('helloworld', 1678530673958, 0, 1);delte-all-data.sql delete from `posts` where 1; delete from `users` where 1; ALTER TABLE `users` ALTER COLUMN id RESTART WITH 1; ALTER TABLE `posts` ALTER COLUMN id RESTART WITH 1; 이와 같이 변경하였는데 혹시 다른 방법이 있을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
PATCH와 PUT의 차이점
14강 유저 업데이트 부분에서 PATCH가 아닌 PUT을 사용하는 이유가 궁금합니다!! 제가 알기로는 PATCH는 일부 수정이 가능하고, PUT은 완전 덮어쓰기라고 알고 있는데, PATCH가 아닌 PUT을 사용하는 이유가 무엇인가요?? 만약 PATCH 사용이 불가능한게 아니라 가능할 경우 코드가 어떻게 되는지도 궁금합니다! 항상 감사합니다!!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대다를 다대일 일대다로 사용하면 안되는 걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 안녕하세요! 다대다 매핑 관련하여 질문드립니다. 강의에서도 그렇고구글링을 했을 때도 그렇고 다대다 매핑을 항상@oneToMany @ManyToOne 으로 매핑을 하더라구요! 그러다가 문득@ManyToOne @OneToMany로 다대다를 풀어내는 경우는아예 없는건지 궁금해졌습니다.제가 지금 사이드 프로젝트를 하고 있는데erd를 @ManyToOne @OneToMany로 해놨었거든요..! 이 경우에 어떤 문제가 발생하는지 실무에서는 아예 사용하지 않는 다대다 매핑 방법인지 사용한다면 어떤 경우에 사용되는 것인지가궁금합니다..!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
em.createQuery() 파라미터 질문드려요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 저의 경우에 인텔리j에서 저런식으로 String으로만파라미터가 잡히는데,강의 내용처럼 qlString으로 바꾸려면 어떻게 해야하나요.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
List Map 전환
주문 조회 V5: JPA에서 DTO 직접 조회 - 컬렉션 조회 최적화강의에서 Map으로 컬렉션 추가하는 것을 보고 질문 드립니다.(list를 map으로 변환하고 key인 orderId로, value인 orderItem 컬렉션 추가) 그대로 orderItems 리스트로 추가하는 방법과 비교해서 "매칭 성능 향상(O(1))"이 된다고 적혀졌는데,list → map 으로 바꾸는 비용 또한 고려해서구체적으로 어떻게 성능 차이가 있는지 궁금합니다.result.forEach(o -> o.setOrderItems(orderItems));
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
dialect 질문 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]우선 개발 버전은 JDK 17입니다.강의에서 강사님이 h2를 이용하며 OracleDialect로 변경 후 정상적으로 동작이 되었는데현재 저의 셋팅에서는 정상적으로 작동이 되지 않더라구요H2 홈페이지를 검색 해본결과 Mode를 Oracle을 추가하면된다고 나와있었고 MODE를 Oracle로 변경하여도 오류가 발생하였습니다..오류내용은 https://www.inflearn.com/questions/1171985/dialect-%EC%84%A4%EC%A0%95-%EC%98%A4%EB%A5%98-%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4이분과 같습니다..David님이 달아주신 답변에는 ojdbc를 의존성 추가를 하는것으로 되어있는데 시도해보았지만 해결되지 않았습니다..물론 이게 강의에 중점은 아니지만 스스로 해결해보려 해도 답이 안나와서 질문드립니다...다른 추가적인 설정이 필요한걸까요??ㅜㅜException in thread "main" jakarta.persistence.PersistenceException: [PersistenceUnit: hello] Unable to build Hibernate SessionFactory at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1591) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1512) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:55) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:80) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) at jpql.JpaMain.main(JpaMain.java:14) Caused by: org.hibernate.MappingException: Could not instantiate id generator [entity-name=jpql.Product] at org.hibernate.id.factory.internal.StandardIdentifierGeneratorFactory.createIdentifierGenerator(StandardIdentifierGeneratorFactory.java:230) at org.hibernate.id.factory.internal.IdentifierGeneratorUtil.createLegacyIdentifierGenerator(IdentifierGeneratorUtil.java:127) at org.hibernate.mapping.SimpleValue.createGenerator(SimpleValue.java:415) at org.hibernate.internal.SessionFactoryImpl.lambda$createGenerators$1(SessionFactoryImpl.java:457) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1779) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at org.hibernate.internal.SessionFactoryImpl.createGenerators(SessionFactoryImpl.java:456) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:271) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:450) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1507) ... 4 more Caused by: org.hibernate.HibernateException: Could not fetch the SequenceInformation from the database at org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.sequenceInformationList(ExtractedDatabaseMetaDataImpl.java:307) at org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.getSequenceInformationList(ExtractedDatabaseMetaDataImpl.java:151) at org.hibernate.id.enhanced.SequenceStyleGenerator.getSequenceIncrementValue(SequenceStyleGenerator.java:581) at org.hibernate.id.enhanced.SequenceStyleGenerator.adjustIncrementSize(SequenceStyleGenerator.java:259) at org.hibernate.id.enhanced.SequenceStyleGenerator.configure(SequenceStyleGenerator.java:207) at org.hibernate.id.factory.internal.StandardIdentifierGeneratorFactory.createIdentifierGenerator(StandardIdentifierGeneratorFactory.java:224) ... 20 more Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ALL_SEQUENCES" not found; SQL statement: select * from all_sequences [42102-224] at org.h2.message.DbException.getJdbcSQLException(DbException.java:514) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:223) at org.h2.message.DbException.get(DbException.java:199) at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8064) at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8035) at org.h2.command.Parser.readTableOrView(Parser.java:8024) at org.h2.command.Parser.readTablePrimary(Parser.java:1788) at org.h2.command.Parser.readTableReference(Parser.java:2268) at org.h2.command.Parser.parseSelectFromPart(Parser.java:2718) at org.h2.command.Parser.parseSelect(Parser.java:2824) at org.h2.command.Parser.parseQueryPrimary(Parser.java:2708) at org.h2.command.Parser.parseQueryTerm(Parser.java:2564) at org.h2.command.Parser.parseQueryExpressionBody(Parser.java:2543) at org.h2.command.Parser.parseQueryExpressionBodyAndEndOfQuery(Parser.java:2536) at org.h2.command.Parser.parseQueryExpression(Parser.java:2529) at org.h2.command.Parser.parseQuery(Parser.java:2498) at org.h2.command.Parser.parsePrepared(Parser.java:627) at org.h2.command.Parser.parse(Parser.java:592) at org.h2.command.Parser.parse(Parser.java:564) at org.h2.command.Parser.prepareCommand(Parser.java:483) at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:639) at org.h2.server.TcpServerThread.process(TcpServerThread.java:289) at org.h2.server.TcpServerThread.run(TcpServerThread.java:191) at java.base/java.lang.Thread.run(Thread.java:833) at org.h2.message.DbException.getJdbcSQLException(DbException.java:514) at org.h2.engine.SessionRemote.readException(SessionRemote.java:650) at org.h2.engine.SessionRemote.done(SessionRemote.java:619) at org.h2.command.CommandRemote.prepare(CommandRemote.java:78) at org.h2.command.CommandRemote.<init>(CommandRemote.java:50) at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:487) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1166) at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:93) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:316) at org.hibernate.tool.schema.extract.spi.ExtractionContext.getQueryResults(ExtractionContext.java:43) at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:39) at org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.sequenceInformationList(ExtractedDatabaseMetaDataImpl.java:291) ... 25 more
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
내부 클래스에 @Slf4j를 적용하는 이유
강의에서 내부 클래스에도 @Slf4j를 적용하는 것을 확인할 수 있는데 그 이유가 궁금합니다!@Slf4j @SpringBootTest public class TxBasicTest { @Slf4j static class BasicService { } }
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
applycation.yml 의 readTimeout 이 적용이 안됩니다.
Springboot 3.0.2ext { set('springCloudVersion', "2022.0.1")} 최신 부트 3.2 에서는 호환 버전이 없어서 그런지 잘 안되서 위 와 같은 버전으로 하니깐 동작을 하는데,타임아웃관련해서는 application.yml 에 설정한 부분이 적용안되는것 같습니다.아래 readTimeout 부분에 마우스 오버 해보니, "Cannot resolve configuration property 'feign.client.config.default.readTimeout' "라고 표시 되더라구요.혹시 버전에 따른 문제인지 코드부분을 점검해봐도 원인을 알 수 가 없네요.확인 좀 부탁드릴게요~ feign: client: config: default: connectTimeout: 5000 readTimeout: 5000 @GetMapping("/health") public ResponseEntity<HealthCheckResponseDto> healthCheck() { try { Thread.sleep(6000); } catch (InterruptedException e) { e.printStackTrace(); } ..... }
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
@Transactional 적용 (Spring Data JPA, JPA 상황에 따른..)
섹션 8의 <실용적인 구조> 강의에서 질문드립니다.JPA의 모든 데이터 변경은 트랜젝션 안에서 일어나기 때문에 JPA를 사용할 때는 리포지토리 계층에 @Transactional을 붙여야한다고 배웠습니다.그런데 Spring Data JPA는 @Transactional을 붙이지 않아도 @Transactional 처리를 자동으로 한다는 것 같은데 맞는 얘긴가요?원래 트랜젝션 적용은 서비스 계층에서 이뤄저야한다고 배웠습니다. 그래서 서비스 계층에서 @Transactional을 붙여왔고요. 그런데 해당 강의의 8분 지점에서 ItemServiceV2의 경우 Spring Data JPA에 의존하고 있기 때문에 리포지토리 계층에서는 @Transactional을 적용하지 않았고 서비스 계층인 ItemServiceV2에서 @Transactional을 적용한 것 같은데 맞을까요?
-
미해결코드로 배우는 React with 스프링부트 API서버
섹션8 > API 서버에서 소셜 회원처리
안녕하세요, 강사님.섹션8 > API 서버에서 소셜 회원처리18분 26초까지 영상을 보고로그인을 시도했는데 DB 테이블에 계정이 생성이 안되네요...어디쪽이 문제일까요??
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
13강 마지막 부분 질문 있습니다.
제가 람다식, 익명클래스, 제네릭에 대한 개념이 확실하게 안 잡혀서 코드이해가 너무 안 되길래 개념부터 다시 찾아보고 공부하고 있는데요 ㅠㅠㅠ 이렇게 공부하는 게 조금 과할 수 있지만 완벽하게 이해를 하고 넘어가고 싶습니다.제가 궁금한 점은query함수를 실행하면 sql이 적용된 결과데이터베이스 전체가 mapRow함수의 파라미터 rs로 들어가게 되는 것 같은데 데이터베이스의 자료형이 ResultSet인가요?rowNum 변수의 필요성입니다. mapRow메서드를 오버라이딩을 해줄 때 rowNum사용을 전혀 안 하고 있는 것 같은데, 어떤 값이 rowNum으로 들어가고 어떻게 작동하는 건가요?mapRow메서드의 반환값은 UserResponse객체 형태인데 결과적인 getUsers메서드의 반환값이 어떻게 List<UserResponse> 형태로 변환될 수 있나요? query함수의 역할인가요?감사합니다.