묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
범위 전송과 이어받기에 대해 궁금한 점이 있습니다.
범위 전송을 이용하여 게임 다운로드와 같은 상황에서 일시 중지/이어 받기가 가능하다고 말씀하셨는데 그렇다면 클라이언트에서 요청을 보낼 때 어느 시점부터 데이터를 이어받아야 하는지 어떻게 알 수 있는지 궁금합니다. 예를 들어 총 길이가 10000bytes인 데이터를 4000bytes까지 받고 일시 정지되었다고 했을 때, 다시 다운로드를 시작하면 4001bytes부터 데이터를 다운받아야 할텐데.. 이 "4001bytes 부터 데이터를 받아야 해!"라는 정보를 어떻게 클라이언트가 알아내서 서버에게 이어받기를 요청할 수 있는지 궁금합니다.
-
미해결mongoDB 기초부터 실무까지(feat. Node.js)
app.post에서 오류가 발생합니다
안녕하세요. 좋은 강의 감사합니다. 오류가 발생하여 질문합니다. postman 코드는 다음과 같습니다. 어느 부분이 잘못되었는지 알고 싶습니다ㅠㅠ 감사합니다.
-
미해결따라하며 배우는 NestJS
nest new 프로젝트명 이렇게 만들고 나서 git에 올리기
nest 명령어로 server라는 프로젝트를 만들었는데 git에 올리려고 하니까 이미 git init로 프로젝트가 생성 되었더라고요 이런경우엔 어떻게 올리나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ModelAttribute의 프로퍼티 접근법 관련 질문 드립니다.
addForm.html의 th:field=*{price}, th:field= *{quantity} 등의 필드들이 결국 @PostMapping("/add")public String addItem( @Validated @ModelAttribute("item") ItemSaveForm form 여기에서 이제 Item 객체가 아닌 ItemSaveForm으로부터 @ModelAttribute의 프로퍼티 접근법으로 form.setPrice(" *{price}"), form.setQuantity("*{quantity}")이렇게 되는 것인가요? 또한 @ModelAttribute의 또 한 가지의 기능인 model.addAttribute 기능이 model.addAttribute("item", form)으로 되어서 만약 검증에 실패해 다시 addForm.html로 돌아가면 addForm.html에서는 form의 데이터들을 받는 형식인가요?
-
미해결인터랙티브 웹 개발 제대로 시작하기
앞벽이랑 사이드벽이 떨어져요 ㅠㅠ
어떨때 보면 붙어있는데 또 새로고침하면 어떨때는 떨어져 있네요.. mac에서 크롬으로 봤는데 저래요 ㅠ
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
TerminalExpression 과 NonterminalExpression이 이해가 잘 안됍니다.
강사님 강의를 보며 구조를 GoF를 참조하면서 공부를 진행중입니다. 그런데... TerminalExpression 과 NonterminalExpression이 이해가 잘 안됍니다. TerminalExpression 과 NonterminalExpression 둘 다 구조상으로는 Expression을 구현하는데 다만 NonterminalExpression은 Express를 구현하면서 집합관계라고 표시되어 있습니다. 디자인 패턴을 의도에 따라서 생각하는게 중요하지만 공개해주신 코드에서 이걸 굳이 분류를 하자면 어떻게 분류를 해야 하는지 그게 궁급합니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
백엔드 socket.io 버전 업그레이드
안녕하세요 프론트 socket.io를 v4 공지사항 올려주신거 보고 최신버전으로 적용해봤는데 백엔드에 설치된 socket.io는 2.0~ 버전으로 설치되어있더라구요/ 그래서 그런지 socket 연결에 실패하네요.. 백엔드쪽 socket 최신버전으로 재설치 해도 되나요? 업그레이드 시 기존 코드랑 충돌이 생기진 않을까요?
-
미해결배달앱 클론코딩 [with React Native]
iOS에서 react-native-vector-icons 설정과정 오류/누락 부분
선생님 강의대로 iOS에 Fonts 그룹을 만들고 node_modules에서 불러오면 아래와 같은 오류를 만나게 됩니다. 폰트를 찾을 수 없다는 것인데 info.plist에 아래 내용을 추가하면 해결됩니다. <key>UIAppFonts</key> <array> <string>AntDesign.ttf</string> <string>Entypo.ttf</string> <string>EvilIcons.ttf</string> <string>Feather.ttf</string> <string>FontAwesome.ttf</string> <string>FontAwesome5_Brands.ttf</string> <string>FontAwesome5_Regular.ttf</string> <string>FontAwesome5_Solid.ttf</string> <string>Fontisto.ttf</string> <string>Foundation.ttf</string> <string>Ionicons.ttf</string> <string>MaterialIcons.ttf</string> <string>MaterialCommunityIcons.ttf</string> <string>SimpleLineIcons.ttf</string> <string>Octicons.ttf</string> <string>Zocial.ttf</string> </array> 아울러, pod install 과정에서 node_modules의 폰트를 불러오는 것 같습니다.(확인은 안 했습니다) 그 결과 Fonts폴더를 만들고 수동으로 폰트를 복사하지 않아도 위와 같은 오류 메시지가 없어짐은 물론, 벡터 아이콘도 정상 출력됩니다.
-
미해결1. 웹개발 기초 [HTML, CSS]
html 구조 설계 진행 방식
border를 이용해서 테두리를 그려가면서 구조 틀을 설계를 진행해주시는데 보통 개발 할 때도 이런 방식으로 진행을 하게되나요? 아니면 이해를 돕기 위해 하는 방식인지 궁금합니다!
-
미해결Svelte.js SPA 영화 검색 프로젝트
scss는 prependdata로 미리 불러와야되나요?
혹시 왜그래야되는지 알 수 있을까요? 제가 또 궁금한건 설정파일에서 prependdata로 꼭 불러와야되나요? 그냥 index.html 로딩할 때 scss파일을 임포트하는형식은 왜 안될까요 궁금하네요 ㅜ
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
nodebird ppt 파일을 혹시 어디서 받아 볼 수 있을까요?
안녕하세요 제가 강의를 중간에 멈추고 다시 중반부 부터 강의를 듣고 있습니다. nodebird 강의를 듣고 있는데 혹시 강의중에 제공되는 ppt 파일을 어디서 다운 받을 수 있을까요?
-
미해결실전! 스프링 데이터 JPA
벌크연산 실행시 영상과 같은 원하는 값이 나오지 않습니다...
12:19초 부분 영상에서 MemberRepositoryTest를 실행시 영상에서는member5 = Member(id=5, username=member5, age=41)이라고 build창에서 나오지만 저는 아예 나오지 않아서 질문드립니다.. build 내용은 에러없이 이렇게 나옵니다. "/Applications/IntelliJ IDEA CE.app/Contents/jbr/Contents/Home/bin/java" -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=62958:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/milaju/.m2/repository/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.jar:/Users/milaju/.m2/repository/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.jar:/Users/milaju/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/milaju/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/milaju/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/junit/lib/junit5-rt.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/junit/lib/junit-rt.jar:/Users/milaju/Desktop/SpringDataJPA/data-jpa/out/test/classes:/Users/milaju/Desktop/SpringDataJPA/data-jpa/out/production/classes:/Users/milaju/Desktop/SpringDataJPA/data-jpa/out/production/resources:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-data-jpa/2.6.6/30942753cd29132913a5b642dc5b045c1cb18fd9/spring-boot-starter-data-jpa-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-web/2.6.6/7aa73898044e9fb7dc71dbf4d4e0f2fbcc7ce25f/spring-boot-starter-web-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.github.gavlyukovskiy/p6spy-spring-boot-starter/1.5.7/1c1cc817d2ee7cfe8a511bb1b429254d05f7ad03/p6spy-spring-boot-starter-1.5.7.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-test/2.6.6/b6b577cad64544e47dc9f523d7091c2cbb85bd52/spring-boot-starter-test-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-aop/2.6.6/d08c239992526803aa4f7fc4e74f243ccc337ebb/spring-boot-starter-aop-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-jdbc/2.6.6/c0ee383ed4482fddc74ad645c0d77c98ec767140/spring-boot-starter-jdbc-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/jakarta.transaction/jakarta.transaction-api/1.3.3/c4179d48720a1e87202115fbed6089bdc4195405/jakarta.transaction-api-1.3.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/jakarta.persistence/jakarta.persistence-api/2.2.3/8f6ea5daedc614f07a3654a455660145286f024e/jakarta.persistence-api-2.2.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.hibernate/hibernate-core/5.6.7.Final/c62626c463b75530acb4f2fb2ae3ca85d80cfa06/hibernate-core-5.6.7.Final.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-jpa/2.6.3/7fbfafa3b27c8f2e315fe489c2f0699a24f32082/spring-data-jpa-2.6.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aspects/5.3.18/78e473c68f3f579f6dff4810530260bcfe97ca8f/spring-aspects-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-json/2.6.6/6f405fb0ebe73841e4494aa65cf2f91d7dc2ae7f/spring-boot-starter-json-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter/2.6.6/b34b4f0c1e99edc181ea40a6b1b79fa72658ee04/spring-boot-starter-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-tomcat/2.6.6/2076a0fd75e63b57dd149a0ccf7a1545e3f1aec3/spring-boot-starter-tomcat-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-webmvc/5.3.18/806b4ac997761daa32cba3f766d8ac09c132fe81/spring-webmvc-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.3.18/8db103c4109e925ec6f5fbfe577d447d3e95ded5/spring-web-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.github.gavlyukovskiy/datasource-decorator-spring-boot-autoconfigure/1.5.7/83c5a0750a42d36ffbcb988f82af0debd43ebd8b/datasource-decorator-spring-boot-autoconfigure-1.5.7.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/p6spy/p6spy/3.8.2/52299d9a1ec2bc2fb8b1a21cc12dfc1a7c033caf/p6spy-3.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test-autoconfigure/2.6.6/c2571e2dd0a9543525b9bd6253942a89195d9b4d/spring-boot-test-autoconfigure-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test/2.6.6/97626f535c1625e0ca3ede4351e4d55e4cd80ae1/spring-boot-test-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.jayway.jsonpath/json-path/2.6.0/67f565b424f7903a12d4f5b9361b11462ecacdac/json-path-2.6.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/jakarta.xml.bind/jakarta.xml.bind-api/2.3.3/48e3b9cfc10752fba3521d6511f4165bea951801/jakarta.xml.bind-api-2.3.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.assertj/assertj-core/3.21.0/27a14d6d22c4e3d58f799fb2a5ca8eaf53e6942a/assertj-core-3.21.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest/2.2/1820c0968dba3a11a1b30669bb1f01978a91dedc/hamcrest-2.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter/5.8.2/5a817b1e63f1217e5c586090c45e681281f097ad/junit-jupiter-5.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-junit-jupiter/4.0.0/b76de25bd6e5d8f7924d0536729c0076e37e9396/mockito-junit-jupiter-4.0.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-core/4.0.0/f5195e0c4a45716bbd2d1d29173adbd148acce3a/mockito-core-4.0.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.skyscreamer/jsonassert/1.5.0/6c9d5fe2f59da598d9aefc1cfc6528ff3cf32df3/jsonassert-1.5.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-test/5.3.18/9d6a388deed7abd60e2bddde44d927f9d009d3be/spring-test-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.3.18/7ff3000f3342989cb011b6095a0e86f2e5176cef/spring-core-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.xmlunit/xmlunit-core/2.8.4/35be57989ca80eefa03161b211630e319a8f36c6/xmlunit-core-2.8.4.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aop/5.3.18/8e9cce60c60257ae1d5b3cd675ec3a8286ed1955/spring-aop-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.aspectj/aspectjweaver/1.9.7/158f5c255cd3e4408e795b79f7c3fbae9b53b7ca/aspectjweaver-1.9.7.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/5.3.18/b168d4c024cb002377bca91f2b804297d8b74003/spring-jdbc-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.zaxxer/HikariCP/4.0.3/107cbdf0db6780a065f895ae9d8fbf3bb0e1c21f/HikariCP-4.0.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-runtime/2.3.6/1e6cd0e5d9f9919c8c8824fb4d310b09a978a60e/jaxb-runtime-2.3.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.hibernate.common/hibernate-commons-annotations/5.1.2.Final/e59ffdbc6ad09eeb33507b39ffcf287679a498c8/hibernate-commons-annotations-5.1.2.Final.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.jboss.logging/jboss-logging/3.4.3.Final/c4bd7e12a745c0e7f6cf98c45cdcdf482fd827ea/jboss-logging-3.4.3.Final.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.11.22/8b4c7fa5562a09da1c2a9ab0873cb51f5034d83f/byte-buddy-1.11.22.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/antlr/antlr/2.7.7/83cd2cd674a217ade95a4bb83a8a14f351f48bd0/antlr-2.7.7.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.jboss/jandex/2.4.2.Final/1e1c385990b258ff1a24c801e84aebbacf70eb39/jandex-2.4.2.Final.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml/classmate/1.5.1/3fe0bed568c62df5e89f4f174c101eab25345b6c/classmate-1.5.1.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/5.3.18/34f6683d9dbe6edb02ad9393df3d3211b5484622/spring-context-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-orm/5.3.18/ec32d5f4c718cc63e7c44adf5c4e7c49cdffa147/spring-orm-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-commons/2.6.3/767ebf330da425ac4ab4b14391a60d9ed3ba18b7/spring-data-commons-2.6.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-tx/5.3.18/a93f91200e40b22ac0fda1308ecac081b820b099/spring-tx-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/5.3.18/3f0ea6598a5a1eae0a672f025a33a0b7e0d6dfd3/spring-beans-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.36/6c62681a2f655b49963a5983b8b0950a6120ae14/slf4j-api-1.7.36.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.13.2/cddd9380efd4b81ea01e98be8fbdc9765a81793b/jackson-datatype-jsr310-2.13.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.module/jackson-module-parameter-names/2.13.2/c406ec37f89125d1003093d5b96d216dc967153c/jackson-module-parameter-names-2.13.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.13.2/95f59cf63c3aadc1549578254af839a9c42ae84f/jackson-datatype-jdk8-2.13.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.13.2.2/ffeb635597d093509f33e1e94274d14be610f933/jackson-databind-2.13.2.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.6.6/e5b575d304ec5c6746fef3cc594bbe89721d64c2/spring-boot-autoconfigure-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/2.6.6/286137a0c57d159f845faa1c2e8d0b7548391085/spring-boot-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-logging/2.6.6/e37b388e2407a1b03f920a7fd0722e41745c92c6/spring-boot-starter-logging-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/jakarta.annotation/jakarta.annotation-api/1.3.5/59eb84ee0d616332ff44aba065f3888cf002cd2d/jakarta.annotation-api-1.3.5.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.29/6d0cdafb2010f1297e574656551d7145240f6e25/snakeyaml-1.29.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-websocket/9.0.60/a88262a55ae2c4b5404149a48122523688be341a/tomcat-embed-websocket-9.0.60.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-core/9.0.60/e14045220243804544ddb168cb532f4640a220c/tomcat-embed-core-9.0.60.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-el/9.0.60/46dad1a278f348ca73466e0b73132bf4c4892c06/tomcat-embed-el-9.0.60.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-expression/5.3.18/61c51831e49a85fc5bf925253ca63f46fec6f013/spring-expression-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/net.minidev/json-smart/2.4.8/7c62f5f72ab05eb54d40e2abf0360a2fe9ea477f/json-smart-2.4.8.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/jakarta.activation/jakarta.activation-api/1.2.2/99f53adba383cb1bf7c3862844488574b559621f/jakarta.activation-api-1.2.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-params/5.8.2/ddeafe92fc263f895bfb73ffeca7fd56e23c2cce/junit-jupiter-params-5.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-api/5.8.2/4c21029217adf07e4c0d0c5e192b6bf610c94bdc/junit-jupiter-api-5.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.11.22/2fbcf3210dfc09b42242e3b66a5281cc5b9adb80/byte-buddy-agent-1.11.22.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.vaadin.external.google/android-json/0.0.20131108.vaadin1/fa26d351fe62a6a17f5cda1287c1c6110dec413f/android-json-0.0.20131108.vaadin1.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/5.3.18/7e5d8cd447981bc20d4c397a2ba0a1c65ff2267a/spring-jcl-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/txw2/2.3.6/45db7b69a8f1ec2c21eb7d4fc0ee729f53c1addc/txw2-2.3.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.sun.istack/istack-commons-runtime/3.0.12/cbbe1a62b0cc6c85972e99d52aaee350153dc530/istack-commons-runtime-3.0.12.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.13.2/ec18851f1976d5b810ae1a5fcc32520d2d38f77a/jackson-annotations-2.13.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.13.2/a6a0e0620d51833feffc67bccb51937b2345763/jackson-core-2.13.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.11/4741689214e9d1e8408b206506cbe76d1c6a7d60/logback-classic-1.2.11.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-to-slf4j/2.17.2/17dd0fae2747d9a28c67bc9534108823d2376b46/log4j-to-slf4j-2.17.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.slf4j/jul-to-slf4j/1.7.36/ed46d81cef9c412a88caef405b58f93a678ff2ca/jul-to-slf4j-1.7.36.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/net.minidev/accessors-smart/2.4.8/6e1bee5a530caba91893604d6ab41d0edcecca9a/accessors-smart-2.4.8.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apiguardian/apiguardian-api/1.1.2/a231e0d844d2721b0fa1b238006d15c6ded6842a/apiguardian-api-1.1.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-commons/1.8.2/32c8b8617c1342376fd5af2053da6410d8866861/junit-platform-commons-1.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.opentest4j/opentest4j/1.2.0/28c11eb91f9b6d8e200631d46e20a7f407f2a046/opentest4j-1.2.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.2.11/a01230df5ca5c34540cdaa3ad5efb012f1f1f792/logback-core-1.2.11.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.17.2/f42d6afa111b4dec5d2aea0fe2197240749a4ea6/log4j-api-2.17.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.1/a99500cf6eea30535eeac6be73899d048f8d12a8/asm-9.1.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.h2database/h2/1.4.200/f7533fe7cb8e99c87a43d325a77b4b678ad9031a/h2-1.4.200.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-engine/5.8.2/c598b4328d2f397194d11df3b1648d68d7d990e3/junit-jupiter-engine-5.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.objenesis/objenesis/3.2/7fadf57620c8b8abdf7519533e5527367cb51f09/objenesis-3.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.sun.activation/jakarta.activation/1.2.2/74548703f9851017ce2f556066659438019e7eb5/jakarta.activation-1.2.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-engine/1.8.2/b737de09f19864bd136805c84df7999a142fec29/junit-platform-engine-1.8.2.jar com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 study.datajpa.repository.MemberJpaRepositoryTest,bulkUpdate 20:56:06.803 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate] 20:56:06.814 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)] 20:56:06.880 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [study.datajpa.repository.MemberJpaRepositoryTest] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper] 20:56:06.897 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [study.datajpa.repository.MemberJpaRepositoryTest], using SpringBootContextLoader 20:56:06.902 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [study.datajpa.repository.MemberJpaRepositoryTest]: class path resource [study/datajpa/repository/MemberJpaRepositoryTest-context.xml] does not exist 20:56:06.902 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [study.datajpa.repository.MemberJpaRepositoryTest]: class path resource [study/datajpa/repository/MemberJpaRepositoryTestContext.groovy] does not exist 20:56:06.902 [main] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [study.datajpa.repository.MemberJpaRepositoryTest]: no resource found for suffixes {-context.xml, Context.groovy}. 20:56:06.903 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [study.datajpa.repository.MemberJpaRepositoryTest]: MemberJpaRepositoryTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. 20:56:06.973 [main] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [study.datajpa.repository.MemberJpaRepositoryTest] 20:56:07.075 [main] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [/Users/milaju/Desktop/SpringDataJPA/data-jpa/out/production/classes/study/datajpa/DataJpaApplication.class] 20:56:07.076 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration study.datajpa.DataJpaApplication for test class study.datajpa.repository.MemberJpaRepositoryTest 20:56:07.258 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [study.datajpa.repository.MemberJpaRepositoryTest]: using defaults. 20:56:07.259 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener] 20:56:07.278 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@5066d65f, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@4233e892, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@77d2e85, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@3ecd267f, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@58ffcbd7, org.springframework.test.context.support.DirtiesContextTestExecutionListener@555cf22, org.springframework.test.context.transaction.TransactionalTestExecutionListener@6bb2d00b, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@3c9bfddc, org.springframework.test.context.event.EventPublishingTestExecutionListener@1a9c38eb, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@319bc845, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@4c5474f5, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@2f4205be, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@54e22bdd, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@3bd418e4, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@544820b7] 20:56:07.281 [main] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@6955cb39 testClass = MemberJpaRepositoryTest, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@235a0c16 testClass = MemberJpaRepositoryTest, locations = '{}', classes = '{class study.datajpa.DataJpaApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@7d61eb55, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@163370c2, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@13d9cbf5, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@c667f46, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@3b5fad2d, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@4e41089d], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]], class annotated with @DirtiesContext [false] with mode [null]. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.6.6) 2022-04-17 20:56:08.246 INFO 39496 --- [ main] s.d.repository.MemberJpaRepositoryTest : Starting MemberJpaRepositoryTest using Java 11.0.14.1 on MacBook-Pro.local with PID 39496 (started by milaju in /Users/milaju/Desktop/SpringDataJPA/data-jpa) 2022-04-17 20:56:08.248 INFO 39496 --- [ main] s.d.repository.MemberJpaRepositoryTest : No active profile set, falling back to 1 default profile: "default" 2022-04-17 20:56:09.521 INFO 39496 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2022-04-17 20:56:09.588 INFO 39496 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 58 ms. Found 2 JPA repository interfaces. 2022-04-17 20:56:11.058 INFO 39496 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2022-04-17 20:56:11.115 INFO 39496 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.7.Final 2022-04-17 20:56:11.280 INFO 39496 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2022-04-17 20:56:11.392 INFO 39496 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2022-04-17 20:56:11.480 INFO 39496 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2022-04-17 20:56:11.513 INFO 39496 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2022-04-17 20:56:12.208 DEBUG 39496 --- [ main] org.hibernate.SQL : drop table if exists member CASCADE 2022-04-17 20:56:12.216 INFO 39496 --- [ main] p6spy : #1650196572215 | took 1ms | statement | connection 1| url jdbc:h2:tcp://localhost/~/datajpa drop table if exists member CASCADE drop table if exists member CASCADE ; 2022-04-17 20:56:12.216 DEBUG 39496 --- [ main] org.hibernate.SQL : drop table if exists team CASCADE 2022-04-17 20:56:12.216 INFO 39496 --- [ main] p6spy : #1650196572216 | took 0ms | statement | connection 1| url jdbc:h2:tcp://localhost/~/datajpa drop table if exists team CASCADE drop table if exists team CASCADE ; 2022-04-17 20:56:12.216 DEBUG 39496 --- [ main] org.hibernate.SQL : drop sequence if exists hibernate_sequence 2022-04-17 20:56:12.216 INFO 39496 --- [ main] p6spy : #1650196572216 | took 0ms | statement | connection 1| url jdbc:h2:tcp://localhost/~/datajpa drop sequence if exists hibernate_sequence drop sequence if exists hibernate_sequence; 2022-04-17 20:56:12.218 DEBUG 39496 --- [ main] org.hibernate.SQL : create sequence hibernate_sequence start with 1 increment by 1 2022-04-17 20:56:12.219 INFO 39496 --- [ main] p6spy : #1650196572219 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/datajpa create sequence hibernate_sequence start with 1 increment by 1 create sequence hibernate_sequence start with 1 increment by 1; 2022-04-17 20:56:12.220 DEBUG 39496 --- [ main] org.hibernate.SQL : create table member ( member_id bigint not null, age integer not null, username varchar(255), tema_id bigint, primary key (member_id) ) 2022-04-17 20:56:12.222 INFO 39496 --- [ main] p6spy : #1650196572222 | took 1ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/datajpa create table member ( member_id bigint not null, age integer not null, username varchar(255), tema_id bigint, primary key (member_id) ) create table member ( member_id bigint not null, age integer not null, username varchar(255), tema_id bigint, primary key (member_id) ); 2022-04-17 20:56:12.224 DEBUG 39496 --- [ main] org.hibernate.SQL : create table team ( team_id bigint not null, name varchar(255), primary key (team_id) ) 2022-04-17 20:56:12.225 INFO 39496 --- [ main] p6spy : #1650196572225 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/datajpa create table team ( team_id bigint not null, name varchar(255), primary key (team_id) ) create table team ( team_id bigint not null, name varchar(255), primary key (team_id) ); 2022-04-17 20:56:12.226 DEBUG 39496 --- [ main] org.hibernate.SQL : alter table member add constraint FK8g17q6hc0aeo27fqj0vlxsa38 foreign key (tema_id) references team 2022-04-17 20:56:12.229 INFO 39496 --- [ main] p6spy : #1650196572229 | took 3ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/datajpa alter table member add constraint FK8g17q6hc0aeo27fqj0vlxsa38 foreign key (tema_id) references team alter table member add constraint FK8g17q6hc0aeo27fqj0vlxsa38 foreign key (tema_id) references team; 2022-04-17 20:56:12.232 INFO 39496 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2022-04-17 20:56:12.340 INFO 39496 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2022-04-17 20:56:12.964 WARN 39496 --- [ main] 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 2022-04-17 20:56:14.549 INFO 39496 --- [ main] s.d.repository.MemberJpaRepositoryTest : Started MemberJpaRepositoryTest in 7.204 seconds (JVM running for 8.983) 2022-04-17 20:56:14.614 INFO 39496 --- [ main] o.s.t.c.transaction.TransactionContext : Began transaction (1) for test context [DefaultTestContext@6955cb39 testClass = MemberJpaRepositoryTest, testInstance = study.datajpa.repository.MemberJpaRepositoryTest@16f62062, testMethod = bulkUpdate@MemberJpaRepositoryTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@235a0c16 testClass = MemberJpaRepositoryTest, locations = '{}', classes = '{class study.datajpa.DataJpaApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@7d61eb55, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@163370c2, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@13d9cbf5, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@c667f46, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@3b5fad2d, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@4e41089d], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]]; transaction manager [org.springframework.orm.jpa.JpaTransactionManager@74cff17c]; rollback [false] 2022-04-17 20:56:14.823 DEBUG 39496 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence 2022-04-17 20:56:14.831 INFO 39496 --- [ main] p6spy : #1650196574831 | took 4ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa call next value for hibernate_sequence call next value for hibernate_sequence; 2022-04-17 20:56:14.844 DEBUG 39496 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence 2022-04-17 20:56:14.845 INFO 39496 --- [ main] p6spy : #1650196574845 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa call next value for hibernate_sequence call next value for hibernate_sequence; 2022-04-17 20:56:14.845 DEBUG 39496 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence 2022-04-17 20:56:14.846 INFO 39496 --- [ main] p6spy : #1650196574846 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa call next value for hibernate_sequence call next value for hibernate_sequence; 2022-04-17 20:56:14.846 DEBUG 39496 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence 2022-04-17 20:56:14.847 INFO 39496 --- [ main] p6spy : #1650196574847 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa call next value for hibernate_sequence call next value for hibernate_sequence; 2022-04-17 20:56:14.847 DEBUG 39496 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence 2022-04-17 20:56:14.847 INFO 39496 --- [ main] p6spy : #1650196574847 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa call next value for hibernate_sequence call next value for hibernate_sequence; 2022-04-17 20:56:14.861 DEBUG 39496 --- [ main] org.hibernate.SQL : insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) 2022-04-17 20:56:14.865 INFO 39496 --- [ main] p6spy : #1650196574865 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) insert into member (age, tema_id, username, member_id) values (10, NULL, 'member1', 1); 2022-04-17 20:56:14.866 DEBUG 39496 --- [ main] org.hibernate.SQL : insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) 2022-04-17 20:56:14.867 INFO 39496 --- [ main] p6spy : #1650196574867 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) insert into member (age, tema_id, username, member_id) values (19, NULL, 'member1', 2); 2022-04-17 20:56:14.867 DEBUG 39496 --- [ main] org.hibernate.SQL : insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) 2022-04-17 20:56:14.868 INFO 39496 --- [ main] p6spy : #1650196574868 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) insert into member (age, tema_id, username, member_id) values (20, NULL, 'member1', 3); 2022-04-17 20:56:14.868 DEBUG 39496 --- [ main] org.hibernate.SQL : insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) 2022-04-17 20:56:14.868 INFO 39496 --- [ main] p6spy : #1650196574868 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) insert into member (age, tema_id, username, member_id) values (21, NULL, 'member1', 4); 2022-04-17 20:56:14.869 DEBUG 39496 --- [ main] org.hibernate.SQL : insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) 2022-04-17 20:56:14.869 INFO 39496 --- [ main] p6spy : #1650196574869 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) insert into member (age, tema_id, username, member_id) values (40, NULL, 'member1', 5); 2022-04-17 20:56:14.872 DEBUG 39496 --- [ main] org.hibernate.SQL : update member set age=age+1 where age>=? 2022-04-17 20:56:14.874 INFO 39496 --- [ main] p6spy : #1650196574874 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa update member set age=age+1 where age>=? update member set age=age+1 where age>=20; 2022-04-17 20:56:14.939 INFO 39496 --- [ main] p6spy : #1650196574939 | took 0ms | commit | connection 3| url jdbc:h2:tcp://localhost/~/datajpa ; 2022-04-17 20:56:14.941 INFO 39496 --- [ main] o.s.t.c.transaction.TransactionContext : Committed transaction for test: [DefaultTestContext@6955cb39 testClass = MemberJpaRepositoryTest, testInstance = study.datajpa.repository.MemberJpaRepositoryTest@16f62062, testMethod = bulkUpdate@MemberJpaRepositoryTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@235a0c16 testClass = MemberJpaRepositoryTest, locations = '{}', classes = '{class study.datajpa.DataJpaApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@7d61eb55, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@163370c2, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@13d9cbf5, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@c667f46, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@3b5fad2d, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@4e41089d], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]] 2022-04-17 20:56:14.958 INFO 39496 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2022-04-17 20:56:14.963 INFO 39496 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2022-04-17 20:56:14.987 INFO 39496 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. Process finished with exit code 0 MemberRepository입니다. package study.datajpa.repository;import org.springframework.data.domain.Page;import org.springframework.data.domain.PageRequest;import org.springframework.data.domain.Pageable;import org.springframework.data.domain.Slice;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.Modifying;import org.springframework.data.jpa.repository.Query;import org.springframework.data.repository.query.Param;import study.datajpa.dto.MemberDto;import study.datajpa.entity.Member;import java.util.Collection;import java.util.List;import java.util.Optional;public interface MemberRepository extends JpaRepository<Member, Long> { List<Member> findByUsernameAndAgeGreaterThan(String username, int age); List<Member> findTop3HelloBy(); List<Member> findByUsername(@Param("username") String username); @Query("select m from Member m where m.username = :username and m.age = :age") List<Member> findUser(@Param("username") String username, @Param("age") int age); @Query("select m.username from Member m") List<String> findUsernameList(); @Query("select new study.datajpa.dto.MemberDto(m.id, m.username, t.name) from Member m join m.team t") List<MemberDto> findMemberDto(); @Query("select m from Member m where m.username in :names") List<Member> findByNames(@Param("names") Collection<String> names); List<Member> findListByUsername(String username); // 컬렉션 Member findMemberByUsername(String username); // 단건 Optional<Member> findOptionalByUsername(String username); // 단건 Optional Page<Member> findByAge(int age, Pageable pageable); @Modifying @Query("update Member m set m.age = m.age + 1 where m.age >= :age") int bulkAgePlus(@Param("age") int age);} MemberRepositoryTest 입니다. package study.datajpa.repository;import org.assertj.core.api.Assertions;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.data.domain.Page;import org.springframework.data.domain.PageRequest;import org.springframework.data.domain.Slice;import org.springframework.data.domain.Sort;import org.springframework.test.annotation.Rollback;import org.springframework.transaction.annotation.Transactional;import study.datajpa.dto.MemberDto;import study.datajpa.entity.Member;import study.datajpa.entity.Team;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;import java.util.Arrays;import java.util.List;import java.util.Optional;import static org.assertj.core.api.Assertions.*;import static org.junit.jupiter.api.Assertions.*;@SpringBootTest@Transactional@Rollback(false)class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Autowired TeamRepository teamRepository; @PersistenceContext EntityManager em; @Test public void testMember() { System.out.println("memberRepository = " + memberRepository.getClass()); Member member = new Member("memberA"); Member savedMember = memberRepository.save(member); Member findMember = memberRepository.findById(savedMember.getId()).get(); assertThat(findMember.getId()).isEqualTo(member.getId()); assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); assertThat(findMember).isEqualTo(member); } @Test public void basicCRUD() { Member member1 = new Member("member1"); Member member2 = new Member("member2"); memberRepository.save(member1); memberRepository.save(member2); // 단건 조회 검증 Member findMember1 = memberRepository.findById(member1.getId()).get(); Member findMember2 = memberRepository.findById(member2.getId()).get(); assertThat(findMember1).isEqualTo(member1); assertThat(findMember2).isEqualTo(member2); findMember1.setUsername("member!!!!!!!"); // 리스트 조회 검증 List<Member> all = memberRepository.findAll(); assertThat(all.size()).isEqualTo(2); // 카운트 검증 long count = memberRepository.count(); assertThat(count).isEqualTo(2); // 삭제 검증 memberRepository.delete(member1); memberRepository.delete(member2); long deleteCount = memberRepository.count(); assertThat(deleteCount).isEqualTo(0); } @Test public void findByUsernameAndAgeGreaterThen() { Member m1 = new Member("AAA", 10); Member m2 = new Member("AAA", 20); memberRepository.save(m1); memberRepository.save(m2); List<Member> result = memberRepository.findByUsernameAndAgeGreaterThan("AAA", 15); assertThat(result.get(0).getUsername()).isEqualTo("AAA"); assertThat(result.get(0).getAge()).isEqualTo(20); assertThat(result.size()).isEqualTo(1); } @Test public void findHelloBy() { List<Member> helloBy = memberRepository.findTop3HelloBy(); } @Test public void testNamedQuery() { Member m1 = new Member("AAA", 10); Member m2 = new Member("BBB", 20); memberRepository.save(m1); memberRepository.save(m2); List<Member> result = memberRepository.findByUsername("AAA"); Member findMember = result.get(0); assertThat(findMember).isEqualTo(m1); } @Test public void testQuery() { Member m1 = new Member("AAA", 10); Member m2 = new Member("BBB", 20); memberRepository.save(m1); memberRepository.save(m2); List<Member> result = memberRepository.findUser("AAA", 10); Member findMember = result.get(0); assertThat(findMember).isEqualTo(m1); } @Test public void findUsernameList() { Member m1 = new Member("AAA", 10); Member m2 = new Member("BBB", 20); memberRepository.save(m1); memberRepository.save(m2); List<String> usernameList = memberRepository.findUsernameList(); for (String s : usernameList) { System.out.println("s = " + s); } } @Test public void findMemberDto() { Team team = new Team("teamA"); teamRepository.save(team); Member m1 = new Member("AAA", 10); m1.setTeam(team); memberRepository.save(m1); List<MemberDto> memberDto = memberRepository.findMemberDto(); for (MemberDto dto : memberDto) { System.out.println("dto = " + dto); } } @Test public void findByNames() { Member m1 = new Member("AAA", 10); Member m2 = new Member("BBB", 20); memberRepository.save(m1); memberRepository.save(m2); List<Member> result = memberRepository.findByNames(Arrays.asList("AAA", "BBB")); for (Member member : result) { System.out.println("member = " + member); } } @Test public void returnType() { Member m1 = new Member("AAA", 10); Member m2 = new Member("BBB", 20); memberRepository.save(m1); memberRepository.save(m2); Optional<Member> findMember = memberRepository.findOptionalByUsername("asdasfasDFADSF"); System.out.println("findMember = " + findMember); } @Test public void paging() { memberRepository.save(new Member("member1", 10)); memberRepository.save(new Member("member2", 10)); memberRepository.save(new Member("member3", 10)); memberRepository.save(new Member("member4", 10)); memberRepository.save(new Member("member5", 10)); int age = 10; PageRequest pageRequest = PageRequest.of(0, 3, Sort.by(Sort.Direction.DESC, "username")); // when Page<Member> page = memberRepository.findByAge(age, pageRequest); Page<MemberDto> toMap = page.map(m -> new MemberDto(m.getId(), m.getUsername(), null)); // then List<Member> content = page.getContent(); assertThat(content.size()).isEqualTo(3); assertThat(page.getTotalElements()).isEqualTo(5); assertThat(page.getNumber()).isEqualTo(0); assertThat(page.getTotalPages()).isEqualTo(2); assertThat(page.isFirst()).isTrue(); assertThat(page.hasNext()).isTrue(); } @Test public void bulkUpdate() { //given memberRepository.save(new Member("member1", 10)); memberRepository.save(new Member("member2", 19)); memberRepository.save(new Member("member3", 20)); memberRepository.save(new Member("member4", 21)); memberRepository.save(new Member("member5", 40)); // when int resultCount = memberRepository.bulkAgePlus(20); em.flush(); em.clear(); List<Member> result = memberRepository.findByUsername("member5"); Member member5 = result.get(0); System.out.println("member5 = " + member5); // then assertThat(resultCount).isEqualTo(3); }} 그리고 MemberRepository Interface에서 @Modifying을 주석처리하면 에러가 나야하지만 주석처리하고 돌려도 정상적으로 아래와 같이 실행이 됩니다. "/Applications/IntelliJ IDEA CE.app/Contents/jbr/Contents/Home/bin/java" -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=63008:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/milaju/.m2/repository/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.jar:/Users/milaju/.m2/repository/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.jar:/Users/milaju/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/milaju/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/milaju/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/junit/lib/junit5-rt.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/junit/lib/junit-rt.jar:/Users/milaju/Desktop/SpringDataJPA/data-jpa/out/test/classes:/Users/milaju/Desktop/SpringDataJPA/data-jpa/out/production/classes:/Users/milaju/Desktop/SpringDataJPA/data-jpa/out/production/resources:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-data-jpa/2.6.6/30942753cd29132913a5b642dc5b045c1cb18fd9/spring-boot-starter-data-jpa-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-web/2.6.6/7aa73898044e9fb7dc71dbf4d4e0f2fbcc7ce25f/spring-boot-starter-web-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.github.gavlyukovskiy/p6spy-spring-boot-starter/1.5.7/1c1cc817d2ee7cfe8a511bb1b429254d05f7ad03/p6spy-spring-boot-starter-1.5.7.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-test/2.6.6/b6b577cad64544e47dc9f523d7091c2cbb85bd52/spring-boot-starter-test-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-aop/2.6.6/d08c239992526803aa4f7fc4e74f243ccc337ebb/spring-boot-starter-aop-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-jdbc/2.6.6/c0ee383ed4482fddc74ad645c0d77c98ec767140/spring-boot-starter-jdbc-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/jakarta.transaction/jakarta.transaction-api/1.3.3/c4179d48720a1e87202115fbed6089bdc4195405/jakarta.transaction-api-1.3.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/jakarta.persistence/jakarta.persistence-api/2.2.3/8f6ea5daedc614f07a3654a455660145286f024e/jakarta.persistence-api-2.2.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.hibernate/hibernate-core/5.6.7.Final/c62626c463b75530acb4f2fb2ae3ca85d80cfa06/hibernate-core-5.6.7.Final.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-jpa/2.6.3/7fbfafa3b27c8f2e315fe489c2f0699a24f32082/spring-data-jpa-2.6.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aspects/5.3.18/78e473c68f3f579f6dff4810530260bcfe97ca8f/spring-aspects-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-json/2.6.6/6f405fb0ebe73841e4494aa65cf2f91d7dc2ae7f/spring-boot-starter-json-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter/2.6.6/b34b4f0c1e99edc181ea40a6b1b79fa72658ee04/spring-boot-starter-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-tomcat/2.6.6/2076a0fd75e63b57dd149a0ccf7a1545e3f1aec3/spring-boot-starter-tomcat-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-webmvc/5.3.18/806b4ac997761daa32cba3f766d8ac09c132fe81/spring-webmvc-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.3.18/8db103c4109e925ec6f5fbfe577d447d3e95ded5/spring-web-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.github.gavlyukovskiy/datasource-decorator-spring-boot-autoconfigure/1.5.7/83c5a0750a42d36ffbcb988f82af0debd43ebd8b/datasource-decorator-spring-boot-autoconfigure-1.5.7.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/p6spy/p6spy/3.8.2/52299d9a1ec2bc2fb8b1a21cc12dfc1a7c033caf/p6spy-3.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test-autoconfigure/2.6.6/c2571e2dd0a9543525b9bd6253942a89195d9b4d/spring-boot-test-autoconfigure-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test/2.6.6/97626f535c1625e0ca3ede4351e4d55e4cd80ae1/spring-boot-test-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.jayway.jsonpath/json-path/2.6.0/67f565b424f7903a12d4f5b9361b11462ecacdac/json-path-2.6.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/jakarta.xml.bind/jakarta.xml.bind-api/2.3.3/48e3b9cfc10752fba3521d6511f4165bea951801/jakarta.xml.bind-api-2.3.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.assertj/assertj-core/3.21.0/27a14d6d22c4e3d58f799fb2a5ca8eaf53e6942a/assertj-core-3.21.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest/2.2/1820c0968dba3a11a1b30669bb1f01978a91dedc/hamcrest-2.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter/5.8.2/5a817b1e63f1217e5c586090c45e681281f097ad/junit-jupiter-5.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-junit-jupiter/4.0.0/b76de25bd6e5d8f7924d0536729c0076e37e9396/mockito-junit-jupiter-4.0.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-core/4.0.0/f5195e0c4a45716bbd2d1d29173adbd148acce3a/mockito-core-4.0.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.skyscreamer/jsonassert/1.5.0/6c9d5fe2f59da598d9aefc1cfc6528ff3cf32df3/jsonassert-1.5.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-test/5.3.18/9d6a388deed7abd60e2bddde44d927f9d009d3be/spring-test-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.3.18/7ff3000f3342989cb011b6095a0e86f2e5176cef/spring-core-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.xmlunit/xmlunit-core/2.8.4/35be57989ca80eefa03161b211630e319a8f36c6/xmlunit-core-2.8.4.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aop/5.3.18/8e9cce60c60257ae1d5b3cd675ec3a8286ed1955/spring-aop-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.aspectj/aspectjweaver/1.9.7/158f5c255cd3e4408e795b79f7c3fbae9b53b7ca/aspectjweaver-1.9.7.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/5.3.18/b168d4c024cb002377bca91f2b804297d8b74003/spring-jdbc-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.zaxxer/HikariCP/4.0.3/107cbdf0db6780a065f895ae9d8fbf3bb0e1c21f/HikariCP-4.0.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-runtime/2.3.6/1e6cd0e5d9f9919c8c8824fb4d310b09a978a60e/jaxb-runtime-2.3.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.hibernate.common/hibernate-commons-annotations/5.1.2.Final/e59ffdbc6ad09eeb33507b39ffcf287679a498c8/hibernate-commons-annotations-5.1.2.Final.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.jboss.logging/jboss-logging/3.4.3.Final/c4bd7e12a745c0e7f6cf98c45cdcdf482fd827ea/jboss-logging-3.4.3.Final.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.11.22/8b4c7fa5562a09da1c2a9ab0873cb51f5034d83f/byte-buddy-1.11.22.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/antlr/antlr/2.7.7/83cd2cd674a217ade95a4bb83a8a14f351f48bd0/antlr-2.7.7.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.jboss/jandex/2.4.2.Final/1e1c385990b258ff1a24c801e84aebbacf70eb39/jandex-2.4.2.Final.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml/classmate/1.5.1/3fe0bed568c62df5e89f4f174c101eab25345b6c/classmate-1.5.1.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/5.3.18/34f6683d9dbe6edb02ad9393df3d3211b5484622/spring-context-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-orm/5.3.18/ec32d5f4c718cc63e7c44adf5c4e7c49cdffa147/spring-orm-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-commons/2.6.3/767ebf330da425ac4ab4b14391a60d9ed3ba18b7/spring-data-commons-2.6.3.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-tx/5.3.18/a93f91200e40b22ac0fda1308ecac081b820b099/spring-tx-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/5.3.18/3f0ea6598a5a1eae0a672f025a33a0b7e0d6dfd3/spring-beans-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.36/6c62681a2f655b49963a5983b8b0950a6120ae14/slf4j-api-1.7.36.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.13.2/cddd9380efd4b81ea01e98be8fbdc9765a81793b/jackson-datatype-jsr310-2.13.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.module/jackson-module-parameter-names/2.13.2/c406ec37f89125d1003093d5b96d216dc967153c/jackson-module-parameter-names-2.13.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.13.2/95f59cf63c3aadc1549578254af839a9c42ae84f/jackson-datatype-jdk8-2.13.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.13.2.2/ffeb635597d093509f33e1e94274d14be610f933/jackson-databind-2.13.2.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.6.6/e5b575d304ec5c6746fef3cc594bbe89721d64c2/spring-boot-autoconfigure-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/2.6.6/286137a0c57d159f845faa1c2e8d0b7548391085/spring-boot-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-logging/2.6.6/e37b388e2407a1b03f920a7fd0722e41745c92c6/spring-boot-starter-logging-2.6.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/jakarta.annotation/jakarta.annotation-api/1.3.5/59eb84ee0d616332ff44aba065f3888cf002cd2d/jakarta.annotation-api-1.3.5.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.29/6d0cdafb2010f1297e574656551d7145240f6e25/snakeyaml-1.29.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-websocket/9.0.60/a88262a55ae2c4b5404149a48122523688be341a/tomcat-embed-websocket-9.0.60.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-core/9.0.60/e14045220243804544ddb168cb532f4640a220c/tomcat-embed-core-9.0.60.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-el/9.0.60/46dad1a278f348ca73466e0b73132bf4c4892c06/tomcat-embed-el-9.0.60.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-expression/5.3.18/61c51831e49a85fc5bf925253ca63f46fec6f013/spring-expression-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/net.minidev/json-smart/2.4.8/7c62f5f72ab05eb54d40e2abf0360a2fe9ea477f/json-smart-2.4.8.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/jakarta.activation/jakarta.activation-api/1.2.2/99f53adba383cb1bf7c3862844488574b559621f/jakarta.activation-api-1.2.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-params/5.8.2/ddeafe92fc263f895bfb73ffeca7fd56e23c2cce/junit-jupiter-params-5.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-api/5.8.2/4c21029217adf07e4c0d0c5e192b6bf610c94bdc/junit-jupiter-api-5.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.11.22/2fbcf3210dfc09b42242e3b66a5281cc5b9adb80/byte-buddy-agent-1.11.22.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.vaadin.external.google/android-json/0.0.20131108.vaadin1/fa26d351fe62a6a17f5cda1287c1c6110dec413f/android-json-0.0.20131108.vaadin1.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/5.3.18/7e5d8cd447981bc20d4c397a2ba0a1c65ff2267a/spring-jcl-5.3.18.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/txw2/2.3.6/45db7b69a8f1ec2c21eb7d4fc0ee729f53c1addc/txw2-2.3.6.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.sun.istack/istack-commons-runtime/3.0.12/cbbe1a62b0cc6c85972e99d52aaee350153dc530/istack-commons-runtime-3.0.12.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.13.2/ec18851f1976d5b810ae1a5fcc32520d2d38f77a/jackson-annotations-2.13.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.13.2/a6a0e0620d51833feffc67bccb51937b2345763/jackson-core-2.13.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.11/4741689214e9d1e8408b206506cbe76d1c6a7d60/logback-classic-1.2.11.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-to-slf4j/2.17.2/17dd0fae2747d9a28c67bc9534108823d2376b46/log4j-to-slf4j-2.17.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.slf4j/jul-to-slf4j/1.7.36/ed46d81cef9c412a88caef405b58f93a678ff2ca/jul-to-slf4j-1.7.36.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/net.minidev/accessors-smart/2.4.8/6e1bee5a530caba91893604d6ab41d0edcecca9a/accessors-smart-2.4.8.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apiguardian/apiguardian-api/1.1.2/a231e0d844d2721b0fa1b238006d15c6ded6842a/apiguardian-api-1.1.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-commons/1.8.2/32c8b8617c1342376fd5af2053da6410d8866861/junit-platform-commons-1.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.opentest4j/opentest4j/1.2.0/28c11eb91f9b6d8e200631d46e20a7f407f2a046/opentest4j-1.2.0.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.2.11/a01230df5ca5c34540cdaa3ad5efb012f1f1f792/logback-core-1.2.11.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.17.2/f42d6afa111b4dec5d2aea0fe2197240749a4ea6/log4j-api-2.17.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.1/a99500cf6eea30535eeac6be73899d048f8d12a8/asm-9.1.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.h2database/h2/1.4.200/f7533fe7cb8e99c87a43d325a77b4b678ad9031a/h2-1.4.200.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-engine/5.8.2/c598b4328d2f397194d11df3b1648d68d7d990e3/junit-jupiter-engine-5.8.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.objenesis/objenesis/3.2/7fadf57620c8b8abdf7519533e5527367cb51f09/objenesis-3.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/com.sun.activation/jakarta.activation/1.2.2/74548703f9851017ce2f556066659438019e7eb5/jakarta.activation-1.2.2.jar:/Users/milaju/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-engine/1.8.2/b737de09f19864bd136805c84df7999a142fec29/junit-platform-engine-1.8.2.jar com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 study.datajpa.repository.MemberJpaRepositoryTest,bulkUpdate 21:04:41.706 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate] 21:04:41.716 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)] 21:04:41.785 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [study.datajpa.repository.MemberJpaRepositoryTest] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper] 21:04:41.799 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [study.datajpa.repository.MemberJpaRepositoryTest], using SpringBootContextLoader 21:04:41.804 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [study.datajpa.repository.MemberJpaRepositoryTest]: class path resource [study/datajpa/repository/MemberJpaRepositoryTest-context.xml] does not exist 21:04:41.804 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [study.datajpa.repository.MemberJpaRepositoryTest]: class path resource [study/datajpa/repository/MemberJpaRepositoryTestContext.groovy] does not exist 21:04:41.804 [main] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [study.datajpa.repository.MemberJpaRepositoryTest]: no resource found for suffixes {-context.xml, Context.groovy}. 21:04:41.805 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [study.datajpa.repository.MemberJpaRepositoryTest]: MemberJpaRepositoryTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. 21:04:41.875 [main] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [study.datajpa.repository.MemberJpaRepositoryTest] 21:04:41.973 [main] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [/Users/milaju/Desktop/SpringDataJPA/data-jpa/out/production/classes/study/datajpa/DataJpaApplication.class] 21:04:41.975 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration study.datajpa.DataJpaApplication for test class study.datajpa.repository.MemberJpaRepositoryTest 21:04:42.145 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [study.datajpa.repository.MemberJpaRepositoryTest]: using defaults. 21:04:42.145 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener] 21:04:42.161 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@655ef322, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@7e276594, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@3401a114, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@5066d65f, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@4233e892, org.springframework.test.context.support.DirtiesContextTestExecutionListener@77d2e85, org.springframework.test.context.transaction.TransactionalTestExecutionListener@3ecd267f, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@58ffcbd7, org.springframework.test.context.event.EventPublishingTestExecutionListener@555cf22, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@6bb2d00b, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@3c9bfddc, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@1a9c38eb, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@319bc845, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@4c5474f5, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@2f4205be] 21:04:42.164 [main] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@4b9df8a testClass = MemberJpaRepositoryTest, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@5e8ac0e1 testClass = MemberJpaRepositoryTest, locations = '{}', classes = '{class study.datajpa.DataJpaApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@7d61eb55, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@163370c2, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@13d9cbf5, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@c667f46, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@3b5fad2d, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@4e41089d], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]], class annotated with @DirtiesContext [false] with mode [null]. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.6.6) 2022-04-17 21:04:42.963 INFO 39593 --- [ main] s.d.repository.MemberJpaRepositoryTest : Starting MemberJpaRepositoryTest using Java 11.0.14.1 on MacBook-Pro.local with PID 39593 (started by milaju in /Users/milaju/Desktop/SpringDataJPA/data-jpa) 2022-04-17 21:04:42.965 INFO 39593 --- [ main] s.d.repository.MemberJpaRepositoryTest : No active profile set, falling back to 1 default profile: "default" 2022-04-17 21:04:44.194 INFO 39593 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2022-04-17 21:04:44.262 INFO 39593 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 58 ms. Found 2 JPA repository interfaces. 2022-04-17 21:04:45.656 INFO 39593 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2022-04-17 21:04:45.707 INFO 39593 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.7.Final 2022-04-17 21:04:45.864 INFO 39593 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2022-04-17 21:04:45.973 INFO 39593 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2022-04-17 21:04:46.059 INFO 39593 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2022-04-17 21:04:46.091 INFO 39593 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2022-04-17 21:04:46.746 DEBUG 39593 --- [ main] org.hibernate.SQL : drop table if exists member CASCADE 2022-04-17 21:04:46.751 INFO 39593 --- [ main] p6spy : #1650197086751 | took 1ms | statement | connection 1| url jdbc:h2:tcp://localhost/~/datajpa drop table if exists member CASCADE drop table if exists member CASCADE ; 2022-04-17 21:04:46.751 DEBUG 39593 --- [ main] org.hibernate.SQL : drop table if exists team CASCADE 2022-04-17 21:04:46.751 INFO 39593 --- [ main] p6spy : #1650197086751 | took 0ms | statement | connection 1| url jdbc:h2:tcp://localhost/~/datajpa drop table if exists team CASCADE drop table if exists team CASCADE ; 2022-04-17 21:04:46.752 DEBUG 39593 --- [ main] org.hibernate.SQL : drop sequence if exists hibernate_sequence 2022-04-17 21:04:46.752 INFO 39593 --- [ main] p6spy : #1650197086752 | took 0ms | statement | connection 1| url jdbc:h2:tcp://localhost/~/datajpa drop sequence if exists hibernate_sequence drop sequence if exists hibernate_sequence; 2022-04-17 21:04:46.754 DEBUG 39593 --- [ main] org.hibernate.SQL : create sequence hibernate_sequence start with 1 increment by 1 2022-04-17 21:04:46.755 INFO 39593 --- [ main] p6spy : #1650197086755 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/datajpa create sequence hibernate_sequence start with 1 increment by 1 create sequence hibernate_sequence start with 1 increment by 1; 2022-04-17 21:04:46.756 DEBUG 39593 --- [ main] org.hibernate.SQL : create table member ( member_id bigint not null, age integer not null, username varchar(255), tema_id bigint, primary key (member_id) ) 2022-04-17 21:04:46.757 INFO 39593 --- [ main] p6spy : #1650197086757 | took 1ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/datajpa create table member ( member_id bigint not null, age integer not null, username varchar(255), tema_id bigint, primary key (member_id) ) create table member ( member_id bigint not null, age integer not null, username varchar(255), tema_id bigint, primary key (member_id) ); 2022-04-17 21:04:46.760 DEBUG 39593 --- [ main] org.hibernate.SQL : create table team ( team_id bigint not null, name varchar(255), primary key (team_id) ) 2022-04-17 21:04:46.761 INFO 39593 --- [ main] p6spy : #1650197086761 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/datajpa create table team ( team_id bigint not null, name varchar(255), primary key (team_id) ) create table team ( team_id bigint not null, name varchar(255), primary key (team_id) ); 2022-04-17 21:04:46.761 DEBUG 39593 --- [ main] org.hibernate.SQL : alter table member add constraint FK8g17q6hc0aeo27fqj0vlxsa38 foreign key (tema_id) references team 2022-04-17 21:04:46.764 INFO 39593 --- [ main] p6spy : #1650197086764 | took 2ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/datajpa alter table member add constraint FK8g17q6hc0aeo27fqj0vlxsa38 foreign key (tema_id) references team alter table member add constraint FK8g17q6hc0aeo27fqj0vlxsa38 foreign key (tema_id) references team; 2022-04-17 21:04:46.767 INFO 39593 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2022-04-17 21:04:46.910 INFO 39593 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2022-04-17 21:04:47.555 WARN 39593 --- [ main] 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 2022-04-17 21:04:48.952 INFO 39593 --- [ main] s.d.repository.MemberJpaRepositoryTest : Started MemberJpaRepositoryTest in 6.73 seconds (JVM running for 8.42) 2022-04-17 21:04:49.001 INFO 39593 --- [ main] o.s.t.c.transaction.TransactionContext : Began transaction (1) for test context [DefaultTestContext@4b9df8a testClass = MemberJpaRepositoryTest, testInstance = study.datajpa.repository.MemberJpaRepositoryTest@42db3ff, testMethod = bulkUpdate@MemberJpaRepositoryTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@5e8ac0e1 testClass = MemberJpaRepositoryTest, locations = '{}', classes = '{class study.datajpa.DataJpaApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@7d61eb55, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@163370c2, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@13d9cbf5, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@c667f46, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@3b5fad2d, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@4e41089d], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]]; transaction manager [org.springframework.orm.jpa.JpaTransactionManager@2f4fc18]; rollback [false] 2022-04-17 21:04:49.176 DEBUG 39593 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence 2022-04-17 21:04:49.185 INFO 39593 --- [ main] p6spy : #1650197089185 | took 4ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa call next value for hibernate_sequence call next value for hibernate_sequence; 2022-04-17 21:04:49.222 DEBUG 39593 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence 2022-04-17 21:04:49.223 INFO 39593 --- [ main] p6spy : #1650197089223 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa call next value for hibernate_sequence call next value for hibernate_sequence; 2022-04-17 21:04:49.223 DEBUG 39593 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence 2022-04-17 21:04:49.224 INFO 39593 --- [ main] p6spy : #1650197089224 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa call next value for hibernate_sequence call next value for hibernate_sequence; 2022-04-17 21:04:49.224 DEBUG 39593 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence 2022-04-17 21:04:49.225 INFO 39593 --- [ main] p6spy : #1650197089225 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa call next value for hibernate_sequence call next value for hibernate_sequence; 2022-04-17 21:04:49.225 DEBUG 39593 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence 2022-04-17 21:04:49.226 INFO 39593 --- [ main] p6spy : #1650197089226 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa call next value for hibernate_sequence call next value for hibernate_sequence; 2022-04-17 21:04:49.239 DEBUG 39593 --- [ main] org.hibernate.SQL : insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) 2022-04-17 21:04:49.243 INFO 39593 --- [ main] p6spy : #1650197089243 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) insert into member (age, tema_id, username, member_id) values (10, NULL, 'member1', 1); 2022-04-17 21:04:49.244 DEBUG 39593 --- [ main] org.hibernate.SQL : insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) 2022-04-17 21:04:49.245 INFO 39593 --- [ main] p6spy : #1650197089245 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) insert into member (age, tema_id, username, member_id) values (19, NULL, 'member1', 2); 2022-04-17 21:04:49.245 DEBUG 39593 --- [ main] org.hibernate.SQL : insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) 2022-04-17 21:04:49.246 INFO 39593 --- [ main] p6spy : #1650197089246 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) insert into member (age, tema_id, username, member_id) values (20, NULL, 'member1', 3); 2022-04-17 21:04:49.246 DEBUG 39593 --- [ main] org.hibernate.SQL : insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) 2022-04-17 21:04:49.247 INFO 39593 --- [ main] p6spy : #1650197089247 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) insert into member (age, tema_id, username, member_id) values (21, NULL, 'member1', 4); 2022-04-17 21:04:49.247 DEBUG 39593 --- [ main] org.hibernate.SQL : insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) 2022-04-17 21:04:49.247 INFO 39593 --- [ main] p6spy : #1650197089247 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa insert into member (age, tema_id, username, member_id) values (?, ?, ?, ?) insert into member (age, tema_id, username, member_id) values (40, NULL, 'member1', 5); 2022-04-17 21:04:49.251 DEBUG 39593 --- [ main] org.hibernate.SQL : update member set age=age+1 where age>=? 2022-04-17 21:04:49.252 INFO 39593 --- [ main] p6spy : #1650197089252 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/datajpa update member set age=age+1 where age>=? update member set age=age+1 where age>=20; 2022-04-17 21:04:49.312 INFO 39593 --- [ main] p6spy : #1650197089312 | took 0ms | commit | connection 3| url jdbc:h2:tcp://localhost/~/datajpa ; 2022-04-17 21:04:49.313 INFO 39593 --- [ main] o.s.t.c.transaction.TransactionContext : Committed transaction for test: [DefaultTestContext@4b9df8a testClass = MemberJpaRepositoryTest, testInstance = study.datajpa.repository.MemberJpaRepositoryTest@42db3ff, testMethod = bulkUpdate@MemberJpaRepositoryTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@5e8ac0e1 testClass = MemberJpaRepositoryTest, locations = '{}', classes = '{class study.datajpa.DataJpaApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@7d61eb55, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@163370c2, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@13d9cbf5, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@c667f46, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@3b5fad2d, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@4e41089d], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]] 2022-04-17 21:04:49.330 INFO 39593 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2022-04-17 21:04:49.335 INFO 39593 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2022-04-17 21:04:49.351 INFO 39593 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. Process finished with exit code 0
-
미해결더 자바, 코드를 조작하는 다양한 방법
JVM 메모리 구조에 대해 공부하다가 질문 드립니다.
안녕하세요! JVM의 메모리 영역 중 메소드 영역에 관해 질문 드립니다. .class 파일들이 JVM으로 로드 되면 메소드 영역에 Class에 대한 정보들을 담는 Class type객체나 static 변수들이 그 쪽에 할당된다고 하셨는데, 이게 어플리케이션이 컨테이너에서 구동될 때 이루어지는 작업이니까 혹시 그러면 어플리케이션이 완전이 시작한 이후에 application scope 내장 객체에서 getAttribute를 통해서도 접근이 가능 할까요..?? 또한 다른 변수들은 아닌 static 변수들만 method 영역에 생성되는 건지도 궁금합니다... static 변수, static 메소드, static 클래스 등등 static과 관련된 모든 object들이 저 영역에 생성이 되는 것인가요..? 강의를 통해 궁금한 점이 생겨 질문 드립니다! 감사합니다!
-
미해결초보를 위한 도커 안내서
wordpress에서 db 연결 문제
docker compose 기본 강의 질문있습니다. 첨부해주신 강의 자료중 docker-compose 그대로 첨부해서 올리니 wordpress에서 db 연결을 못합니다. 로그를 확인해보니 이렇게 권한 문제가 나오는데 .. 강의와 다르게 추가적으로 권한 작업을 해야하는건가요 ??
-
미해결스프링 프레임워크 핵심 기술
HttpServeltRequest 객체의 빈 스코프에 대해 질문 드립니다.
안녕하세요! 스프링에 대한 기초 지식이 부족한 개발자 입니다. 프로젝트 개발 중 해결은 하였지만 이해가 가지 않아 질문 드립니다. 너무 궁금해서 강의를 시작하기도 전에 질문 먼저 드리는 점 죄송합니다..ㅠ 기존에 돌아가던 프로젝트를 이관하는 중에 client로부터 page라는 parameter가 request에 중복으로 들어오는 경우가 생겼습니다. 가장 좋은 방법은 하나를 빼고 request를 보내도록 수정하는 것이겠지만, 다른 부분에서도 쓰이는 util쪽 코드라 쉽게 건들이지 못해서 RequestWrapper를 사용하게 되었습니다. public class RequestWrapper extends HttpServletRequestWrapper { Map<String, Object> hashMap ; public RequestWrapper ( HttpServletRequest req ) { .... hashMap = new HashMap<String, Object>( req.getParameterMap ); } 이런 식으로 request로 들어온 parameter들을 받아서 중복된 page를 제거하고 hashMap에 넣은 후, getParameterValues와 getParameter에서 저 hashMap에서 값을 꺼내오도록 변경하였습니다. 제가 이해가 안가는 부분은 아래와 같은 상황인데요.. 특정 request 를 받아 controller를 거쳐 xxx.jsp를 리턴 한 후 ( A과정 ) 해당 jsp안에서 jstl의 <c:import>와 <c:param>을 통해 다시 한번 임의의 다른 controller를 호출해서 값을 받아오는 ( B과정 ) 부분이 있었습니다. 그런데 wrapper를 적용하기 전에는 정상작동하던 것이 wrapper를 사용하기 시작하니까 <c:param>으로 넘겨주는 값들은 넘어가지가 않고 그 전에 호출되던 A과정의 request parameter들이 넘어가더라구요.. request객체는 scope가 request이니까 A과정에서 jsp를 return하고 나면 사라지고 B과정에서 jstl 태그를 이용해 다시 특정 컨트롤러를 호출하면 새로운 request 객체가 생성되서 <c:param>들이 넘어가야 맞는 것 아닌가요...? getParameter를 통해 <c:param>으로 보내준 값을들 찍어봐도 전부 null값으로 나왔습니다.. 제가 추측하는 이유는 1) jsp안에서 jstl로 다른 컨트롤러 호출 시 request의 scope이 종료되지 않은 경우 2) request는 A과정과 B과정 모두 각각 생성되고 사라지는데, wrapper의 생성자에서 hashMap을 세팅했기 떄문에 이후에는 wrapper 객체가 새로 생성되는 경우가 없어 hashMap 값이 바뀌지 않는 경우 2)번이 이유인 경우에 그럼 wrapper의 scope도 prototype이나 request로 변경해줘야 할까요..?? 상태값을 가지고 있는 class 의 경우 싱글톤으로 관리하면 안된다고 배우긴 했는데 ... requestWapper이니 request별로 뭔가 초기화 되거나 새로 만들어질 것이라고 생각을 했습니다..ㅠ 제가 스프링 지식이 부족해서 질문을 너무 복잡하게 작성한 것 같습니다.. 혹시 위 말고 다른 이유가 있는 걸까요??.. 답변 기다리고 있겠습니다...ㅠ 감사합니다!
-
미해결Slack 클론 코딩[실시간 채팅 with React]
./dist/Workspace.tsx에서 {children} 질문입니다.
강의를 들으면서 Workspace.tsx 코드를 작성할 때 const Workspace :FC를 해주면 children부분 타입에러가 해결된다고 하셨는데 계속 타입에러 뜨면서 컴파일 에러가 발생합니다. 그래서 따로 {children} : React.ReactNode도 해보고 any도 입력해 보았는데 둘다 해결되지 않습니다. 어떻게 해야하나요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
DedupingInterval에 관해서 질문드립니다.
안녕하세요 강사님. 강의 잘 보고있습니다! useSWR을 이곳저곳에서 사용하면서, 어떤 곳에서는 DedupingInterval을 1000으로 주고, 다른 곳에서는 100000으로 주면 어떤 DedupingInterval을 따르나요? 예를 들어서 A에서는 'api/users/'에 DedupingInterval을 2000으로 주고 B에서도 마찬가지로 'api/users/'을 key로 설정하지만, DedupingInterval을 5000으로 준다면 실제 캐시에는 몇 초마다 값이 갱신되나요? 혹시 현재 보고있는 view에 따라서 결정되나요? 만약 그렇다면, 매번 DedupingInterval을 매번 설정할 필요없이 전역적으로 설정하는 방법도 있을까요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 작성후 디버그했을 때
코드 작성하고 디버그를 돌렸는데 input.txt를 읽었을텐데 그냥 cmd창에는 press any key to continue 라고만 나옵니다.. 어떤 원인이 있는걸까요.. 현재 뒤집은 소수 강의까지 잘 듣다가 지금 이런 오류가 나타나네요 계속.. 코드도 강사님과 똑같이 잘 작성 하였는데요ㅠㅠ
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
모듈 메모리 에러
모듈을 넣어서 실행하면 모듈을 작성한 곳에서 메모리 에러가 뜨는데 원인을 모르겠습니다메모리 5기가 정도 여유 있는데도 메모리 에러가 뜨네요 :(저 def price(people) 에서 people 에 커서를 놓으니 수만번의 print 문장이 펼쳐져 있었어요 아마 여러번 문장이 반복되면서 메모리를 채운거 같다고 저는 생각하는데 해결 방법이 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
sql 로그가 안남아요 ㅜㅜ
yml 설정 파일엔 문제가 없는 것 같은데 sql 로그가 안남네요 ㅜㅜ