작성
·
726
0
testMember에서 table은 생성이 되는데 값이 insert가 안 됩니다.
구글링을 해도 이유를 모르겠어서 질문 드립니다.
[directory 구조]
[Repository]
[MemberRepositoryTest]
[application.yml]
[build.gradle]
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.3'
id 'io.spring.dependency-management' version '1.1.3'
}
group = 'com.jpabook'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-devtools'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation("org.junit.vintage:junit-vintage-engine") {
exclude group: "org.hamcrest", module: "hamcrest-core"
}
}
tasks.named('test') {
useJUnitPlatform()
}
test {
useJUnitPlatform()
}
[실행 후 DB]
아래의 log를 보면 create 쿼리가 날라가는 것은 확인 되지만 insert query는 보이지 않습니다.
[log]
:: Spring Boot :: (v3.1.3)
2023-09-05T04:30:50.821+09:00 INFO 49729 --- [ restartedMain] com.jpabook.jpabook.JpabookApplication : Starting JpabookApplication using Java 17.0.6 with PID 49729 (/Users/innahyeon/study/jpabook/build/classes/java/main started by innahyeon in /Users/innahyeon/study/jpabook)
2023-09-05T04:30:50.822+09:00 INFO 49729 --- [ restartedMain] com.jpabook.jpabook.JpabookApplication : No active profile set, falling back to 1 default profile: "default"
2023-09-05T04:30:50.841+09:00 INFO 49729 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2023-09-05T04:30:50.841+09:00 INFO 49729 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2023-09-05T04:30:51.061+09:00 INFO 49729 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2023-09-05T04:30:51.068+09:00 INFO 49729 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 4 ms. Found 0 JPA repository interfaces.
2023-09-05T04:30:51.294+09:00 INFO 49729 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2023-09-05T04:30:51.298+09:00 INFO 49729 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2023-09-05T04:30:51.298+09:00 INFO 49729 --- [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.12]
2023-09-05T04:30:51.320+09:00 INFO 49729 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2023-09-05T04:30:51.321+09:00 INFO 49729 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 480 ms
2023-09-05T04:30:51.331+09:00 INFO 49729 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2023-09-05T04:30:51.387+09:00 INFO 49729 --- [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:tcp://localhost/~/jpastudy1 user=SA
2023-09-05T04:30:51.388+09:00 INFO 49729 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2023-09-05T04:30:51.392+09:00 INFO 49729 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:tcp://localhost/~/jpastudy1'
2023-09-05T04:30:51.435+09:00 INFO 49729 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
2023-09-05T04:30:51.460+09:00 INFO 49729 --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.2.7.Final
2023-09-05T04:30:51.461+09:00 INFO 49729 --- [ restartedMain] org.hibernate.cfg.Environment : HHH000406: Using bytecode reflection optimizer
2023-09-05T04:30:51.511+09:00 INFO 49729 --- [ restartedMain] o.h.b.i.BytecodeProviderInitiator : HHH000021: Bytecode provider name : bytebuddy
2023-09-05T04:30:51.568+09:00 INFO 49729 --- [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
2023-09-05T04:30:51.660+09:00 INFO 49729 --- [ restartedMain] o.h.b.i.BytecodeProviderInitiator : HHH000021: Bytecode provider name : bytebuddy
2023-09-05T04:30:51.882+09:00 INFO 49729 --- [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2023-09-05T04:30:51.887+09:00 DEBUG 49729 --- [ restartedMain] org.hibernate.SQL :
drop table if exists member cascade
Hibernate:
drop table if exists member cascade
2023-09-05T04:30:51.889+09:00 DEBUG 49729 --- [ restartedMain] org.hibernate.SQL :
drop sequence if exists member_seq
Hibernate:
drop sequence if exists member_seq
2023-09-05T04:30:51.891+09:00 DEBUG 49729 --- [ restartedMain] org.hibernate.SQL :
create sequence member_seq start with 1 increment by 50
Hibernate:
create sequence member_seq start with 1 increment by 50
2023-09-05T04:30:51.892+09:00 DEBUG 49729 --- [ restartedMain] org.hibernate.SQL :
create table member (
id bigint not null,
username varchar(255),
primary key (id)
)
Hibernate:
create table member (
id bigint not null,
username varchar(255),
primary key (id)
)
2023-09-05T04:30:51.895+09:00 INFO 49729 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2023-09-05T04:30:51.926+09:00 WARN 49729 --- [ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2023-09-05T04:30:51.975+09:00 INFO 49729 --- [ restartedMain] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]
2023-09-05T04:30:52.047+09:00 INFO 49729 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
2023-09-05T04:30:52.061+09:00 INFO 49729 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2023-09-05T04:30:52.066+09:00 INFO 49729 --- [ restartedMain] com.jpabook.jpabook.JpabookApplication : Started JpabookApplication in 1.393 seconds (process running for 1.638)
답변 1
0
안녕하세요. nahyeon.in11님, 공식 서포터즈 y2gcoder입니다.
도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.
실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 문제 영역을 실행할 수 있는 방법
2. 문제가 어떻게 나타나는지에 대한 상세한 설명
감사합니다.
안녕하세요.
혹시 JpabookApplicationTest가 없어서 문제가 되었나 싶어 해당 파일을 추가해보았지만 여전히 같은 문제가 발생합니다.
https://drive.google.com/file/d/1_5KsNGtiCOgStlV_y_1hM2K-SdasgEqd/view?usp=sharing
도저히 어떤것이 문제인지 모르겠어 질문 드립니다. 감사합니다.
보내주신 코드(마지막 드라이브 파일 기준) 살펴보았습니다.
먼저 불필요한 설정 및 코드부터 정리하겠습니다!
1) JpabookApplicationTest 삭제 => @SpringBootApplication은 이미 src/main/java/com/jpabook/jpabook/JpabookApplication.java에 있기 때문에 필요없습니다!
2) build.gradle 수정 => 강의자료의 스프링 부트 3버전 변경사항을 참고하시는데 어려움을 겪으신 것 같습니다. 아래의 build.gradle을 사용하시면 됩니다!(제공해주신 파일에서 불필요한 것들을 지웠을 뿐입니다.)
*꼭 build refresh (코끼리 새로고침) 해주십쇼!
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.3'
id 'io.spring.dependency-management' version '1.1.3'
}
group = 'com.jpabook'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
3) h2 DB 실행 및 jpashop 데이터베이스 파일 생성 => 이 부분은 하셨으리라 생각합니다. 스프링 부트 3버전이기 때문에 h2 DB 버전을 확인해주십쇼! 2.1.214 버전을 설치 후 실행하셔야 합니다! 만약 1.4.200 버전을 설치하고 데이터베이스를 만드셨다면, 2.1.214 버전 설치 후 실행해주시고, 기존 데이터베이스 파일을 삭제하고 다시 데이터베이스도 만들어주십쇼!
이제 실행하시면 insert 쿼리가 나가는 것을 보실 수 있고,
h2 DB 콘솔을 그대로 들어가서 확인해보면,
보시는 바와 같이 데이터가 제대로 들어간 모습을 볼 수 있습니다.
파이팅입니다!
https://drive.google.com/file/d/1ero_Z9t6cojv56olYgLmpryl2eJGYfAR/view?usp=sharing
아래의 MemberRepositoryTest.java 실행
아래와 같이 데이터를 저장하는 코드가 있음에도 테이블이 생성되기만 하고 데이터가 DB에 insert 되지 않습니다. -> 정상적이라면 MemberA가 DB에 insert 되어야 하지만, insert 쿼리가 실행되지 않고 해당 데이터가 DB에 없습니다.