inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

h2 database

해결됨

[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발

implementation 'com.h2database:h2' 이걸로 h2 database를 추가했는데 로그에 h2 database가 추가되지 않아 확인해보니 implementation 'org.springframework.boot:spring-boot-h2console' 이 부분을 추가해야한다고 합니다. Spring Boot 4.x부터 H2 콘솔 자동설정(H2ConsoleAutoConfiguration)이 spring-boot-autoconfigure에서 분리되어 별도 모듈 spring-boot-h2console로 이동했습니다. 이 내용에 대해서 확인해주시면 감사할거 같습니다! 좋은 강의 제공해주셔서 감사합니다!

  • spring
  • spring-boot
  • jpa
  • hibernate
무능한아기 댓글 2 좋아요 0 조회수 38

application.properties가 적용되지 않아요

해결됨

[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발

2-3강 8분 11초처럼 application.properties에 뭘 넣어도 적용이 안되고 사용되지 않는 프로퍼티라는 글밖에 나오지 않습니다 .

  • spring
  • spring-boot
  • jpa
  • hibernate
weogle 댓글 3 좋아요 1 조회수 103

새 프로젝트 속 제너레이터에 SpringBoot가 없습니다.

해결됨

[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발

2-2강 2:27 부분에서처럼 새 프로젝트를 눌러도 제너레이터에 Spring Boot가 없습니다. 마켓플레이스에서 설치해야하는걸까요? 저는 신규 유저가 아니라 쿠폰 쓰지 못하여 기본으로 사용 중이라 보이지 않는걸까요?

  • spring
  • spring-boot
  • jpa
  • hibernate
weogle 댓글 2 좋아요 0 조회수 96

색깔구분

해결됨

[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발

11:41분 때 처럼 저런 Run창에 Debug 혹은 WARN처럼 색깔을 입혀 구분하게 하고 싶은데 어떻게 해야하나용..?

  • spring
  • spring-boot
  • jpa
  • hibernate
Moonsung Cho 댓글 3 좋아요 0 조회수 100

postman request url {{baseURL}} 어떻게 하신걸까요?

해결됨

[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발

3-5 강의 14:34 에 요청 URL 을 var 로 선언해두셨는데, 어떻게 하는걸까요?

  • spring
  • spring-boot
  • jpa
  • hibernate
smaller 댓글 2 좋아요 0 조회수 142

남은 수업은 언제 올라올까요,,

해결됨

[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발

남은 수업은 언제 올라올까요? 빨리 듣고 싶습니다.ㅎㅎ

  • spring
  • spring-boot
  • jpa
  • hibernate
kimjinjuind 댓글 1 좋아요 0 조회수 115

데이터베이스 교육자료

해결됨

[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발

수강평 남기고 디코에 인증했는데 db lv0 파일은 어떻게 받을수 있을까요

  • spring
  • spring-boot
  • jpa
  • hibernate
김민구 댓글 2 좋아요 0 조회수 117

스크립트 오류

미해결

고성능 JPA & Hibernate (High-Performance Java Persistence)

ManyToOne and OneToMany 의 12:38 스크립트가 반대로 작성 (이에 따라 번역도 반대로) 되어있는 것 같습니다. Hibernate is not going to set the foreign key when executing the insert statement. -> Hibernate is going to set the foreign key when executing the insert statement. nullable false 설정하면 삽입 시 외래키도 같이 설정. 그럼에도 이후 update 쿼리가 날아간다. 라는 것 같은데 반대로 적혀있네요. 스크립트 정정에서 신청할랬는데 정정 버튼이 안눌려서 글 남깁니다.

  • java
  • jpa
  • hibernate
Young Kim 댓글 1 좋아요 0 조회수 60

Hibernate Proxy객체가 실제객체로 변환이 안돼요

미해결

먼저 Entity Code부터 보여드리겠습니다. FieldGroupMapping(부모) @Entity @Table(name = "FIELD_GROUP_MAPPING") @Getter @SuperBuilder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) public class FieldGroupMapping extends CreationAuditingEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "FIELD_GRP_MPPG_ID", nullable = false) private Long id; @Column(name = "FIELD_CD", length = 50, nullable = false) private String fieldCd; @ManyToOne(fetch = FetchType.EAGER, optional = false) @JoinColumn(name = "FIELD_CD", referencedColumnName = "FIELD_CD", insertable = false, updatable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) private FieldMetadata field; } FieldMetadata (자식) @Entity @Table(name = "FIELD_METADATA") @Getter @SuperBuilder @AllArgsConstructor @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn(name = "FIELD_TYPE") @NoArgsConstructor(access = AccessLevel.PROTECTED) public class FieldMetadata extends CreationAuditingEntity { @Id @Column(name = "FIELD_CD", length = 50, nullable = false) private String fieldCd; @Column(name = "LABEL", length = 50, nullable = false) private String label; @Enumerated(EnumType.STRING) @Column(name = "DATA_TYPE", columnDefinition = "varchar(20)", nullable = false) private FieldDataType dataType; } RealFieldMetadata (상속된 자식) @Entity @Table(name = "REAL_FIELD_METADATA") @Getter @SuperBuilder @AllArgsConstructor @DiscriminatorValue(FieldDiscriminatorValues.D_REAL) @NoArgsConstructor(access = AccessLevel.PROTECTED) @PrimaryKeyJoinColumn(name = "FIELD_CD") public class RealFieldMetadata extends FieldMetadata { @Enumerated(EnumType.STRING) @Column(name = "TABLE_ALIAS", columnDefinition = "varchar(50)", nullable = false) private TableAlias tableAlias; @Column(name = "COLUMN_NAME", nullable = false, length = 50) private String columnName; @Builder.Default @Convert(converter = BooleanYNConverter.class) @Column(name = "REQUIRES_JOIN", nullable = false, columnDefinition = "char(1) default 'N'") private boolean requiresJoin = false; @Enumerated(EnumType.STRING) @Column(name = "JOIN_TABLE", columnDefinition = "varchar(50)") private TableAlias joinTable; } FieldGroupMapping 과 FieldMetadata는 1:N 관계입니다. List<String> idList = List.of("GD01", "GD02", "GD03"); // fetch join 없이 조회 List<FieldGroupMapping> fieldGroupMappings1 = fieldGroupRepository.findAllById(idList); Long gridId = 1L; // fetch join으로 조회 List<FieldGroupMapping> fieldGroupMappings2 = gridRepository.getGrid(gridId) .map(Grid::getFieldGroupMapping) .toList(); for (FieldGroupMapping mapping1 : fieldGroupMappings1) { FieldMetadata field = mapping1.getField(); // 여기서 BreakPoint로 field를 보면 Proxy 객체 } for (FieldGroupMapping mapping2 : fieldGroupMappings2) { FieldMetadata field = mapping2.getField() // 여기서 BreakPoint로 field를 보면 실제 객체 (Unproxy상태) } 위 상황에서 첫번째 fieldGroupMappings1을 조회할땐 fetch join없이 hibernate로만 조회합니다. 두번째 fieldGroupMappings2를 조회할땐 Grid -> FieldGroupMapping -> field 연관관계 모두 fetch join을 써서 조회합니다. 제 지식으로는 두개 for문에서 모두 field는 Unproxy상태여야합니다. 단, fetch join이 없는 첫번째 리스트에서는 Select Query가 나가겠죠. 하지만, 테스트 결과는 첫번째 리스트에서의 field는 계속 Proxy상태로 되어있어. field 내부의 필드들이 null로 되어있었습니다. 또, 제 어플리케이션의 설정으로 default batch size는 1000으로 되어있어. select문의 조건에 in절로 채워져서 쿼리가 1번 발생하였습니다. 제 지식으로는 Select쿼리가 발생하였으므로, 첫번째 리스트도 field는 실제 객체여야하는데 왜 프록시객체로 남아있을까요? FieldMetadata 엔티티가 상속Entity여서 발생하는 문제일까요? 정답을 알려주세요 ㅠㅠㅠ

  • jpa
  • hibernate
papakang22 댓글 1 좋아요 0 조회수 39

버그

미해결

고성능 JPA & Hibernate (High-Performance Java Persistence)

4강 초반 자막싱크가 맞지 않습니다. 음성더빙도 속도가 안맞아요.

  • java
  • jpa
  • hibernate
이재일 댓글 1 좋아요 0 조회수 100

해당 내용에 대한 내용 요약

미해결

고성능 JPA & Hibernate (High-Performance Java Persistence)

Hibernate Connection Lifecycle 수업은 해당 내용을 이해가 안되서 몇번 봤지만 결론적으로 디폴트 설정은 save할때 마다 오토커밋 때문에 성능저하가 발생한다. 그러므로 해당 설정 hibernate.connection.provider_disables_autocommit=true 을 통해서 오토커밋을 방지하면 성능이 향상되는걸로 이해 하였고, 일관성 있는 트렉젝션 처리로 @transactional로 관리 한다,, 라고 이해 하였습니다 맞을까요,,? 혹시 해당 내용이 아니면 댓글 부탁드립니다. 덕분에 공부는 많이 되네요,,!

  • java
  • jpa
  • hibernate
오개발 댓글 1 좋아요 0 조회수 267

섹션1 - Github Repository 실습 관련

미해결

고성능 JPA & Hibernate (High-Performance Java Persistence)

Github Repository에서 Master branch를 내려받고 강의대로 mvn clean test-compile 을 실행하면 java: cannot find symbol 에러가 발생하네요. m1 맥 환경에서 아래와 같은 오류가 발생합니다. cannot find symbol symbol: class Category_ location: package com.vladmihalcea.hpjp.hibernate.query.recursive.category.model

  • java
  • jpa
  • hibernate
JYK 댓글 2 좋아요 0 조회수 317

질문 올려도 되는지..?

미해결

고성능 JPA & Hibernate (High-Performance Java Persistence)

여기 내용에서 대부분 통합 테스트시 h2 디비 인메모리 기반으로 테스트를 하는게 아니라,, docker 기반 mysql 설치후에 볼륨을 tmpfs 로 마운트한다음에 해도 빠르다는건가요,,?

  • java
  • jpa
  • hibernate
오개발 댓글 1 좋아요 0 조회수 313

JPA physical-strategy 변환이 안되는 이유가 어떤게 있을까요???

미해결

안녕하세요. 스프링부트3 기반으로 api 프로젝트를 셋팅 중 입니다. 그런데 셋팅 중 physical-strategy 이 제대로 동작하지 않아서 이것저것 해보다가 도움을 구해보고자 글을 올리게 되었습니다. 우선 프로젝트 환경은 스프링부트 = 3.2.2 하이버네이트 = 6.3.1.Final Java = corretto17 입니다. application.yml 은 이렇게 설정되어 있습니다. Entity는 카멜케이스로 작성이 된 상태 입니다. DB는 스네이크로 네이밍이 되어 있는 상태입니다. 그런데 JPA 조회 쿼리를 날리면 계속 카멜케이스로 조회가 되면서 오류가 발생해서 이것저것 해보는데 해결이 안되서 도움을 구해보고자 합니다. 혹시 뭔가 놓치고 있는게 있을까요???

  • 스프링부트3
  • jpa
  • hibernate
  • strategy
  • java
  • mysql
gpjun7 댓글 1 좋아요 0 조회수 1304

autocommit과 connection 획득 지연에 대해

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 먼저 좋은 강의 제작해주셔서 많은 도움이 되었고, 감사드립니다! osiv 를 설명해주신 강의에서, osiv가 켜져있으면 커넥션을 오래 물고 있어 트래픽이 많으면 장애가 발생할 수 있다고 하셨는데요. 같은 맥락으로 커넥션을 릴리즈하는 시점이 아닌 획득 하는 시점에서도 1. datasource에서 커넥션 autocommit을 false로 설정하고, (디폴트는 true) 2. 하이버네이트에게 트랜잭션 시작(그리고 종료) 시 set autocommit를 수행하지 않도록 해서( hibernate.connection.provider_disables_autocommit 옵션으로 하이버네이트에게 알려줌 ) 커넥션 획득을 지연시키고 불필요한 SET 문 실행을 없애, 결과적으로 커넥션 점유 시간을 줄이면서 리소스 사용과 쓰루풋 최적화가 가능하다고 합니다. 참고한 자료 - https://vladmihalcea.com/why-you-should-always-use-hibernate-connection-provider_disables_autocommit-for-resource-local-jpa-transactions/ - https://github.com/spring-projects/spring-boot/issues/9261 - https://pkgonan.github.io/2019/01/hibrnate-autocommit-tuning - https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/appendices/Configurations.html 그래서 위 자료들에 따르면 일반적인 스프링 부트 2 + 하이버네이트 조합을 쓰는 경우에는 datasource의 autocommit을 항상 false로 하는 것이 좋을 것 같은데(이 경우 hibernate.connection.provider_disables_autocommit는 자동으로 enable 설정됨) , 혹시 이 설정에 대한 경험이 있으신지, 있으시다면 조심해야할 사이드이팩트는 없으셨는지 궁금해서 질문남겨봅니다. (늦더라도 영한님께서 직접 답변해주시면 좋을 것 같습니다^^) 감사합니다.

  • autocommit
  • java
  • hibernate
  • JPA
  • spring-boot
  • spring
Moon Stephen 댓글 2 좋아요 1 조회수 1446

java.lang.NoSuchMethodError 에러가 해결이 안됩니다..

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 간단한 예제 작성이고, 기존에 잘 진행하던 H2 DB인데, 어느날 부터 갑자기 이런 오류 메세지가 뜨면서 테이블생성은 되나 입력 값이 전혀 들어가지 않는 오류가 발생하기 시작하였습니다. 이유를 도저히 찾을수가 없어서 질문 올립니다. 답 해주시면 감사하겠습니다. Hibernate: drop table if exists Item CASCADE 5월 07, 2022 2:09:36 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@2102a4d5] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. Hibernate: drop table if exists Member CASCADE Hibernate: drop table if exists OrderItem CASCADE Hibernate: drop table if exists ORDERS CASCADE Hibernate: drop sequence if exists hibernate_sequence Hibernate: create sequence hibernate_sequence start with 1 increment by 1 5월 07, 2022 2:09:36 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@1e886a5b] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. Hibernate: create table Item ( ITEM_ID bigint not null, name varchar(255), price integer not null, stockQuantity integer not null, primary key (ITEM_ID) ) Hibernate: create table Member ( MEMBER_ID bigint not null, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (MEMBER_ID) ) Hibernate: create table OrderItem ( ORDER_ITEM_ID bigint not null, count integer not null, ITEM_ID bigint, ORDER_ID bigint, orderPrice integer not null, primary key (ORDER_ITEM_ID) ) Hibernate: create table ORDERS ( ORDER_ID bigint not null, MEMBER_ID bigint, orderDate timestamp, status varchar(255), primary key (ORDER_ID) ) 5월 07, 2022 2:09:36 오후 org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 5월 07, 2022 2:09:36 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PoolState stop INFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/jpashop] Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.annotations.common.reflection.ReflectionManager.reset()V at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:414) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at jpabook.jpashop.JpaMain.main(JpaMain.java:14)

  • jpa
  • java
  • hibernate
  • JPA
  • orm
댓글 1 좋아요 0 조회수 2453

MemberServiceIntegrationTest 테스트 실행오류

미해결

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

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 안녕하세요. 강의와 커뮤니티 잘 공부하고 있어요. 지금까지 오류없이 잘오다가 테스트에서 오류가 나는데 hibernate관련인듯 한데 정확히 잘 모르겠어요. 회원가입(gaYip)테스트인데 전체 에러는 아래와 같아요. ---------------------------------------------------- java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$6(ClassBasedTestDescriptor.java:350) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:355) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$7(ClassBasedTestDescriptor.java:350) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:349) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$4(ClassBasedTestDescriptor.java:270) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:269) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$2(ClassBasedTestDescriptor.java:259) at java.base/java.util.Optional.orElseGet(Optional.java:364) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$3(ClassBasedTestDescriptor.java:258) at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:101) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:100) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:65) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$1(NodeTestTask.java:111) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:111) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:79) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) 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:96) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) at org.springframework.boot.SpringApplication.run(SpringApplication.java:338) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:123) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) ... 67 more Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:176) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:127) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1224) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1255) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ... 82 more Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ... 99 more 혹시 몰라서 재부팅도 해보고 그래들 새로고침도 하고 H2도 다시 연결해보았는데 성공이 안되네요. get()에서 null값 관련한거 같은데 정확히 모르겠어요. 어떤게 오류일까요? 감사합니다.

  • hibernate
  • spring
  • get()
  • java
  • 하이버네이트
  • spring-boot
  • 테스트오류
  • MVC
Young Eun Park 댓글 1 좋아요 0 조회수 329

MySQL Dialect 커스텀 관련해서 문의드립니다. (group_concat)

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. 영한님 오랜만에 인사드립니다. MySQL Dialect 중 하나인 group_concat을 추가하여 사용해야 하는 상황이라.. 다음과 같이 Custom을 만들고 프로퍼티로 해당 CustomDialect까지 등록되어 정상 동작하는 상황입니다. public class CustomMySQL57Dialect extends MySQL57Dialect { public CustomMySQL57Dialect() { registerFunction("GROUP_CONCAT", new StandardSQLFunction("group_concat", StandardBasicTypes.STRING)); } } 문제는, Native Query로는 `GROUP_CONCAT(DISTINCT xxx)` 처럼 사용이 가능하나, QueryDSL을 이용한 상황에서 해당 DISTINCT가 동작하지 않습니다.. 위와 같은 상황을 겪어보셨을 지 않을까 싶어 여쭤봅니다! QueryDSL 코드 중 일부는 다음과 같습니다. select(Projections.constructor(PaymentFilterConditionDTO.class, transaction.merchantMemberNo, Expressions.stringTemplate("group_concat(DISTINCT {0})", new CaseBuilder().when(transaction.userType.eq(UserType.LINE_PAY)) .then(transaction.transactionType.stringValue() .concat(transaction.paymentMethod.stringValue())) .otherwise(transaction.transactionType.stringValue().concat(transaction.paymentMethod.stringValue()) .concat(SUFFIX_AFFILIATE))))) from(...) where(...) 위의 QueryDSL 코드에서 DISTINCT가 제외되면 예외없이 동작하구요. DISTINCT가 있을 때는 다음과 같이 예외가 발생합니다. - unexpected token : group_concat - unexpected token : DISTINCT 항상 도움주셔서 다시 한 번 감사합니다.

  • dialect
  • mysql
  • JPA
  • hibernate
  • java
pjok1122 댓글 2 좋아요 0 조회수 2276

엔티티가 아닌 DTO로 변환을 할 때 컬렉션 조회를 할 경우 @JsonIgnore가 필요로 하는상태가 생겼습니다.

미해결

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

API 개발 고급 - 컬렉션 조회 최적화에서 주문 조회 V2: 엔티티를 DTO를 변환 수업에서 4:30 에 No properties문제가 발생하여 저도 getter를 넣었으나 다음과 같은 에러가 발생했습니다. 구글링 한 결과 해당 컬렉션이 지연 로딩으로 인해 프록시 객체를 serialize하기 때문에 나는 에러라고 합니다. 그래서 제가 조치한 것은 해당 에러가 발생하는 @OneToMany필드를 @JsonIgnore를 했습니다. 다행히 정상 작동은 했으나 김영한님의 강의에서도 그렇고 제가 개인적으로 하는 프로젝트에서도 단 한번도 Entity에 @JsonIgnore를 사용하지 않았습니다. 단순히 DTO에 getter를 사용했는데 작동이 잘 되었습니다. 어떻게 하면 Entity에 @JsonIgnore를 사용하지 않고 문제를 해결할 수 있을까요?

  • jpa
  • java
  • @JsonIgnore
  • spring
  • hibernate
  • JPA
  • NoSerialize
  • spring-boot
Sunny 댓글 2 좋아요 0 조회수 462

Hibernate Query

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

Hibernate: /* insert hellojpa.Movie */ insert into Item (name, price, id) values (?, ?, ?) 안녕하세요 영한님 콘솔창에 Hibernate에서 날라가는 Query에서 values 부분이 (?, ?, ?)로 나오는데 이것을 제가 코드에서 넣은 값으로 나오게는 못하나요?

  • hibernate
  • java
  • JPA
leesh5000 댓글 1 좋아요 1 조회수 388

인기 태그

인프런 TOP Writers

주간 인기글