자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
강의 코드를 그대로 따라가고 있지는 않고 기존에 알고 있던 내용이랑 합쳐서 코드를 작성하고 있습니다. Controller @PutMapping("/user") public void updateUserName(@RequestBody UpdateUserDto updateDto) { userService.updateUserName(updateDto.getId(), updateDto.getName()); } Dto public class UpdateUserDto { private long id; private String name; public long getId() { return id; } public String getName() { return name; } Repository @Override public void updateUserName(long id, String name) { String sql = "update user set name = ? where id = ?"; jdbcTemplate.update(sql, name, id); } Service @Override public void updateUserName(long id, String name) { userRepository.updateUserName(id, name); } 수정을 눌렀을 때 name은 정상적으로 값이 넘어오는데 id가 계속 0으로 넘어옵니다,, 등록 시에는 DB에 id가 정상적으로 입력되고 있는데 뭐가 문제일까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 회원 리포지토리 테스트 케이스 작성 강의에서 assertEquals(A, B), assertThat(A).isEqualTo(B)에 대한 질문이 있습니다. 두가지 메서드 모두 A와 B의 순서가 크게 중요하지 않아보이는데 그런가요? 다르다면, 첫번째 메서드는 member를 앞에 넣으시고, 뒤에 메서드는 member1을 뒤에 넣으셨는데, 메서드를 어떻게 해석해야할까요? junit 문서를 찾아보아도 그런 설명이 없네요..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 16:47초에 실행하시는 통합테스트 코드 - 회원가입() 메서드 실행에서 에러가 납니다.. 에러 내용은 다음과 같습니다. could not prepare statement [Column "M1_0.USERNAME" not found; SQL statement: select m1_0.id,m1_0.username from member m1_0 where m1_0.username=? [42122-214]] [select m1_0.id,m1_0.username from member m1_0 where m1_0.username=?] org.hibernate.exception.SQLGrammarException: could not prepare statement [Column "M1_0.USERNAME" not found; SQL statement: select m1_0.id,m1_0.username from member m1_0 where m1_0.username=? [42122-214]] [select m1_0.id,m1_0.username from member m1_0 where m1_0.username=?] at app//org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert( SQLExceptionTypeDelegate.java:64 ) at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert( StandardSQLExceptionConverter.java:56 ) at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert( SqlExceptionHelper.java:108 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:187 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement( StatementPreparerImpl.java:76 ) at app//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.lambda$list$0( JdbcSelectExecutorStandardImpl.java:102 ) at app//org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery( DeferredResultSetAccess.java:226 ) at app//org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.getResultSet( DeferredResultSetAccess.java:163 ) at app//org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext( JdbcValuesResultSetImpl.java:254 ) at app//org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext( JdbcValuesResultSetImpl.java:134 ) at app//org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next( AbstractJdbcValues.java:19 ) at app//org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next( RowProcessingStateStandardImpl.java:66 ) at app//org.hibernate.sql.results.spi.ListResultsConsumer.consume( ListResultsConsumer.java:198 ) at app//org.hibernate.sql.results.spi.ListResultsConsumer.consume( ListResultsConsumer.java:33 ) at app//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery( JdbcSelectExecutorStandardImpl.java:361 ) at app//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery( JdbcSelectExecutorStandardImpl.java:168 ) at app//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.list( JdbcSelectExecutorStandardImpl.java:93 ) at app//org.hibernate.sql.exec.spi.JdbcSelectExecutor.list( JdbcSelectExecutor.java:31 ) at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$0( ConcreteSqmSelectQueryPlan.java:110 ) at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation( ConcreteSqmSelectQueryPlan.java:303 ) at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList( ConcreteSqmSelectQueryPlan.java:244 ) at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList( QuerySqmImpl.java:518 ) at app//org.hibernate.query.spi.AbstractSelectionQuery.list( AbstractSelectionQuery.java:367 ) at app//org.hibernate.query.Query.getResultList( Query.java:119 ) at app//hello.hellospring.repository.JpaMemberRepository.findByName( JpaMemberRepository.java:33 ) at app//hello.hellospring.service.MemberService.validateDuplicateMember( MemberService.java:33 ) at app//hello.hellospring.service.MemberService.join( MemberService.java:27 ) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:77 ) at java.base@17.0.4.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base@17.0.4.1/java.lang.reflect.Method.invoke( Method.java:568 ) at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection( AopUtils.java:343 ) at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint( ReflectiveMethodInvocation.java:196 ) at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:163 ) at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:756 ) at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation( TransactionInterceptor.java:123 ) at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction( TransactionAspectSupport.java:391 ) at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke( TransactionInterceptor.java:119 ) at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:184 ) at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:756 ) at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept( CglibAopProxy.java:708 ) at app//hello.hellospring.service.MemberService$$SpringCGLIB$$0.join(<generated>) at app//hello.hellospring.service.MemberServiceIntegrationTest.회원가입( MemberServiceIntegrationTest.java:28 ) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:77 ) at java.base@17.0.4.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base@17.0.4.1/java.lang.reflect.Method.invoke( Method.java:568 ) at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod( ReflectionUtils.java:727 ) at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed( MethodInvocation.java:60 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed( InvocationInterceptorChain.java:131 ) at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept( TimeoutExtension.java:156 ) at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod( TimeoutExtension.java:147 ) at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod( TimeoutExtension.java:86 ) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0( InterceptingExecutableInvoker.java:103 ) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0( InterceptingExecutableInvoker.java:93 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed( InvocationInterceptorChain.java:106 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed( InvocationInterceptorChain.java:64 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke( InvocationInterceptorChain.java:45 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke( InvocationInterceptorChain.java:37 ) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke( InterceptingExecutableInvoker.java:92 ) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke( InterceptingExecutableInvoker.java:86 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7( TestMethodTestDescriptor.java:217 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod( TestMethodTestDescriptor.java:213 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:138 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:68 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:151 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base@17.0.4.1/java.util.ArrayList.forEach( ArrayList.java:1511 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base@17.0.4.1/java.util.ArrayList.forEach( ArrayList.java:1511 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) at app//org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) at app//org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses( JUnitPlatformTestClassProcessor.java:110 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000( JUnitPlatformTestClassProcessor.java:90 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop( JUnitPlatformTestClassProcessor.java:85 ) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop( SuiteTestClassProcessor.java:62 ) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:77 ) at java.base@17.0.4.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base@17.0.4.1/java.lang.reflect.Method.invoke( Method.java:568 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:36 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:24 ) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch( ContextClassLoaderDispatch.java:33 ) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke( ProxyDispatchAdapter.java:94 ) at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run( TestWorker.java:193 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName( TestWorker.java:129 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:100 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:60 ) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute( ActionExecutionWorker.java:56 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:113 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:65 ) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run( GradleWorkerMain.java:69 ) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main( GradleWorkerMain.java:74 ) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "M1_0.USERNAME" not found; SQL statement: select m1_0.id,m1_0.username from member m1_0 where m1_0.username=? [42122-220] at org.h2.message.DbException.getJdbcSQLException( DbException.java:514 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:489 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.expression.ExpressionColumn.getColumnException( ExpressionColumn.java:244 ) at org.h2.expression.ExpressionColumn.optimizeOther( ExpressionColumn.java:226 ) at org.h2.expression.ExpressionColumn.optimize( ExpressionColumn.java:213 ) at org.h2.command.query.Select .prepareExpressions( Select.java:1170 ) at org.h2.command.query.Query.prepare( Query.java:218 ) at org.h2.command.Parser.prepareCommand( Parser.java:583 ) at org.h2.engine.SessionLocal.prepareLocal( SessionLocal.java:634 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:288 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:833 ) at app//org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) at app//org.h2.engine.SessionRemote.readException( SessionRemote.java:637 ) at app//org.h2.engine.SessionRemote.done( SessionRemote.java:606 ) at app//org.h2.command.CommandRemote.prepare( CommandRemote.java:78 ) at app//org.h2.command.CommandRemote.<init>( CommandRemote.java:50 ) at app//org.h2.engine.SessionRemote.prepareCommand( SessionRemote.java:480 ) at app//org.h2.jdbc.JdbcConnection.prepareCommand( JdbcConnection.java:1116 ) at app//org.h2.jdbc.JdbcPreparedStatement.<init>( JdbcPreparedStatement.java:92 ) at app//org.h2.jdbc.JdbcConnection.prepareStatement( JdbcConnection.java:288 ) at app//com.zaxxer.hikari.pool.ProxyConnection.prepareStatement( ProxyConnection.java:327 ) at app//com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement( HikariProxyConnection.java ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare( StatementPreparerImpl.java:91 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:177 ) ... 123 more Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended MemberServiceIntegrationTest > ȸ������() FAILED org.hibernate.exception.SQLGrammarException at MemberServiceIntegrationTest.java:28 Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException at MemberServiceIntegrationTest.java:28 2023-08-20T14:08:26.076+09:00 INFO 17356 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2023-08-20T14:08:26.079+09:00 INFO 17356 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2023-08-20T14:08:26.109+09:00 INFO 17356 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. 1 test completed, 1 failed > Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/Users/man25/OneDrive/����%20ȭ��/������%20����/hello-spring/build/reports/tests/test/index.html * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 22s 4 actionable tasks: 1 executed, 3 up-to-date 아래 사진은 application.properties 디렉터리의 코드입니다. 아래 사진은 SpringConfig 클래스의 코드입니다. 해결 방법을 모르겠네요ㅠㅠㅠ
섹션 10 강의를 들으면서 설정값을 바꾼후 busrefresh를 통해 성공적으로 (204)를 반환 받아도 저런식으로 오류가 발생하여 항상 전부 재시작후 실습을 진행중입니다. 어떻게 해결해야할까요? 해당 json부분에 이전과 다른 데이터 값을 넣어주면 정상작동합니다. 하지만 제가 알기로는 h2 db의 경우 재시작 할 때마다 데이터가 모두 날라가는걸로 알고 있습니다. spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:testdb username: sa h2역시 인메모리 방식으로 잘 되어 있는데 왜 모든 서비스들을 전부 종료하고 재시작해야지만 h2내부의 값들이 사라지는지 궁금합니다.
zookeeper의 경우 D:\{home}\kafka_2.13-2.7.0>bin\windows\zookeeper-server-start.bat config\zookeeper.properties 이대로 실행하면 아래 파바박 뜨면서 tmp에 zookeeper 폴더도 잘 만들어 지는데 kafka는 D:\{home}\kafka_2.13-2.7.0>bin\windows\kafka-server-start.bat config\server.properties 아무것도 안뜨고 그냥 D:\{home}\kafka_2.13-2.7.0> 으로 넘어갑니다 tmp에 폴더도 안 만들어지고요. 딱히 에러가 발생하지도 않습니다. java는 jdk 11.0.2사용 중이고 버전에 문제 없어 보이는데 왜 이러는 걸까요?
이전에 혼자 ddd, 헥사고날 아키텍처를 공부하면서 느꼈던게 객체지향적인 코드 + 테스트하기 용이한 코드를 작성하기 위해서는 결국 domain layer와 persistence layer의 분리가 필수적인데 jpa entity와 domain entity를 완전히 분리했을 때 JPA가 mybatis나 jdbc template를 사용하는 것과 비교해 가지는 강점이 있는지 잘 모르겠습니다.. 그나마 jpa entity와 domain entity를 분리하지 않는다면 어떻게든 온몸 비틀기로 그나마 테스트하기 용이하고 객체지향스러운 코드를 작성해볼 수는 있지만 결국 복잡한 로직에서는 쿼리 때문에 문제가 생기고 ㅜ 지식 공유자님께서는 이 문제에 대해 어떻게 생각하시나요?
Collection.Map의 Good 케이스를 알 수 있을까요? 맵을 사용할 때 맵 안에 맵이 있고 이런 형태를 사용하지 않는게 좋은건지 아니면 따로 dto로 변환해서 사용해야하는건지 구분이 안 가서 질문 드립니다 ! 지정된 scope를 넘나들지 않는다는 것도 이해가 가지 않습니다 ㅠㅠ 조금만 더 쉽게 설명 붙여주시면 감사드리겠습니다!
강의에서는 아래와 같이 select 쿼리를 이용해 업데이트 된 회원을 조회후 response로 전달해 주었는데 @PutMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMemberV2(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request) { memberService.update(id,request.getName()); Member findMember = memberService.findOne(id); return new UpdateMemberResponse(findMember.getId(), findMember.getName()); } 아래와 같이 하지 않은 이유가 있을까요?? @PutMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMemberV2(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request) { memberService.update(id, request.getName()); return new UpdateMemberResponse(id, request.getName()); }
@Configuration @EnableWebSecurity @RequiredArgsConstructor public class WebSecurity { private final UserService userService; private final BCryptPasswordEncoder bCryptPasswordEncoder; private final Environment environment; @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(request ->{ request.requestMatchers(antMatcher("/actuator/**")).permitAll(); request.requestMatchers(antMatcher("/**")).permitAll();}) // .headers(header -> header.frameOptions( // frameOptionsConfig -> frameOptionsConfig.disable())) .apply(new MyCustomSecurity()); return http.build(); } public class MyCustomSecurity extends AbstractHttpConfigurer<MyCustomSecurity, HttpSecurity> { @Override public void configure(HttpSecurity http) throws Exception { AuthenticationManager authenticationManager = http.getSharedObject( AuthenticationManager.class); AuthenticationFilter authenticationFilter = new AuthenticationFilter(authenticationManager, userService, environment); http.addFilter(authenticationFilter); } protected void configure2(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userService).passwordEncoder(bCryptPasswordEncoder); } } } 해당 코드는 앞 내용까지 포함하여 설정이 적용된 버전입니다. 저같은 경우는 처음부터 mysql로 진행하여서 h2 콘솔을 사용하지 않아 frameOptions를 주석처리 하였으나, 혹여나 h2 콘솔 사용하시는 분은 주석 해제 후 사용하시면 되고, 23.08.10 기준으로 hasIpAddress는 사용 불가능합니다.
@Configuration @EnableAspectJAutoProxy public class MetricsConfig { @Bean public TimedAspect timedAspect(MeterRegistry registry) { return new TimedAspect(registry); } } 해당 config 파일을 추가해주세요.
클래스의 상속과 관련된 다형성은 부모객체로 인스턴스를 생성하여 부모클래스의 메소드와 자식클래스 메소드 2가지를 업/다운캐스팅하여 자유롭게 호출할 수 있지만, 단일상속이라는 한계 때문에 다른 부모클래스의 메소드는 호출할 수가 없잖아요? 그래서 인터페이스가 존재하는 이유구요. 마찬가지로, 인스턴스를 생성할 때 다형성을 활용하여 인터페이스 객체(부모 객체)로 생성할 수는 있지만, 이것은 ISP(Interface Segregation Principle)원칙에 따라 detect(), report() 2개의 메소드를 호출하려면 Detectable, Reportable 객체 2개를 생성해야 하기 때문에 메모리가 효율적으로 관리되지 못하는거구요. 따라서 구상클래스인 FactoryCam에서 인터페이스 변수를 직접 생성하고 setter함수로 필요한 인터페이스 변수를 주입한 다음(Dependency Injection) , 주입당한 객체는 인터페이스에 의존하기 때문에(Reportable, Detectable) 동시에 기능이 다른 2가지 메소드를 호출할 수 있는거구요.(Dependency Inversion Principle) ... 과정을 이해하였지만 말로 풀어내니까 굉장히 장황하군요 사실 이 부분은 인터페이스 문법이라기보다는 디자인 패턴과 관련이 있지 않나싶습니다.
방향 그래프 무방향 그래프에 따라서 자료구조에 자료를 저장하는 방법이 다르다고 하셨습니다. 그런데 지금 이 문제에서는 방향그래프 아닌가요?? 간선,엣지들을 보면 모두 방향이 있는 거 같은데, 왜 무방향그래프를 저장할 때처럼 arraylist에 값을 저장하는지 모르겠습니다.
실전 예제 4를 하고 있는데 create로 설정하면 메인메서드 실행할 때마다 테이블 드랍되고 실행되어야하는데 아래와 같은 오류가 자꾸 발생하면서 실행이 안되는데 왜그럴까요 ㅠㅠ 수동으로 데이터베이스에서 드랍하고 실행하거나 update 등으로만 설정해야 잘 작동되는데 왜그럴까요... /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=49362:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/hwang-gyuhyeog/Desktop/JPA/1.자바 ORM 표준 JPA 프로그래밍-기본편/jpashop/target/classes:/Users/hwang-gyuhyeog/.m2/repository/org/hibernate/hibernate-entitymanager/5.3.10.Final/hibernate-entitymanager-5.3.10.Final.jar:/Users/hwang-gyuhyeog/.m2/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar:/Users/hwang-gyuhyeog/.m2/repository/org/hibernate/hibernate-core/5.3.10.Final/hibernate-core-5.3.10.Final.jar:/Users/hwang-gyuhyeog/.m2/repository/org/javassist/javassist/3.23.2-GA/javassist-3.23.2-GA.jar:/Users/hwang-gyuhyeog/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar:/Users/hwang-gyuhyeog/.m2/repository/org/jboss/jandex/2.0.5.Final/jandex-2.0.5.Final.jar:/Users/hwang-gyuhyeog/.m2/repository/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar:/Users/hwang-gyuhyeog/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar:/Users/hwang-gyuhyeog/.m2/repository/org/dom4j/dom4j/2.1.1/dom4j-2.1.1.jar:/Users/hwang-gyuhyeog/.m2/repository/org/hibernate/common/hibernate-commons-annotations/5.0.4.Final/hibernate-commons-annotations-5.0.4.Final.jar:/Users/hwang-gyuhyeog/.m2/repository/javax/persistence/javax.persistence-api/2.2/javax.persistence-api-2.2.jar:/Users/hwang-gyuhyeog/.m2/repository/net/bytebuddy/byte-buddy/1.9.5/byte-buddy-1.9.5.jar:/Users/hwang-gyuhyeog/.m2/repository/org/jboss/spec/javax/transaction/jboss-transaction-api_1.2_spec/1.1.1.Final/jboss-transaction-api_1.2_spec-1.1.1.Final.jar:/Users/hwang-gyuhyeog/.m2/repository/com/h2database/h2/1.4.200/h2-1.4.200.jar:/Users/hwang-gyuhyeog/.m2/repository/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar jpabook.jpashop.JpaMain 8월 08, 2023 10:39:56 오후 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation INFO: HHH000204: Processing PersistenceUnitInfo [ name: hello ...] 8월 08, 2023 10:39:56 오후 org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core { 5.3.10.Final } 8월 08, 2023 10:39:56 오후 org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found 8월 08, 2023 10:39:57 오후 org.hibernate.annotations.common.reflection.java .JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations { 5.0.4.Final } 8월 08, 2023 10:39:57 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 8월 08, 2023 10:39:57 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001005: using driver [org.h2.Driver] at URL [jdbc:h2:tcp:// localhost/~/jpashop ] 8월 08, 2023 10:39:57 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001001: Connection properties: {user=sa} 8월 08, 2023 10:39:57 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001003: Autocommit mode: false 8월 08, 2023 10:39:57 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init> INFO: HHH000115: Hibernate connection pool size: 20 (min=1) 8월 08, 2023 10:39:57 오후 org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.H2Dialect Hibernate: drop table Category if exists Hibernate: drop table CATEGORY_ITEM if exists Hibernate: drop table Delivery if exists Hibernate: drop table Item if exists Hibernate: drop table Member if exists Hibernate: drop table OrderItem if exists Hibernate: drop table ORDERS if exists Hibernate: drop sequence if exists hibernate_sequence Hibernate: create sequence hibernate_sequence start with 1 increment by 1 8월 08, 2023 10:39:57 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@7f5b9db] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. 8월 08, 2023 10:39:57 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " drop table Category if exists" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " drop table Category if exists" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:67 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlString( SchemaDropperImpl.java:375 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlStrings( SchemaDropperImpl.java:359 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.dropFromMetadata( SchemaDropperImpl.java:241 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.performDrop( SchemaDropperImpl.java:154 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop( SchemaDropperImpl.java:126 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop( SchemaDropperImpl.java:112 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction( SchemaManagementToolCoordinator.java:144 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process( SchemaManagementToolCoordinator.java:72 ) at org.hibernate.internal.SessionFactoryImpl.<init>( SessionFactoryImpl.java:310 ) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build ( SessionFactoryBuilderImpl.java:467 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:939 ) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory( HibernatePersistenceProvider.java:56 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:79 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:54 ) at jpabook.jpashop.JpaMain.main( JpaMain.java:14 ) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "CATEGORY" because "FKJIP0OR3VEMIXCCL6VX0KLUJ03" depends on it; SQL statement: drop table Category if e [90107-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:632 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.command.ddl.DropTable.prepareDrop( DropTable.java:97 ) at org.h2.command.ddl.DropTable.update( DropTable.java:121 ) at org.h2.command.CommandContainer.update( CommandContainer.java:169 ) at org.h2.command.Command.executeUpdate( Command.java:252 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:408 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:576 ) at org.h2.engine.SessionRemote.done( SessionRemote.java:611 ) at org.h2.command.CommandRemote.executeUpdate( CommandRemote.java:237 ) at org.h2.jdbc.JdbcStatement.executeInternal( JdbcStatement.java:228 ) at org.h2.jdbc.JdbcStatement.execute( JdbcStatement.java:201 ) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:54 ) ... 15 more 8월 08, 2023 10:39:57 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " drop table Delivery if exists" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " drop table Delivery if exists" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:67 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlString( SchemaDropperImpl.java:375 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlStrings( SchemaDropperImpl.java:359 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.dropFromMetadata( SchemaDropperImpl.java:241 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.performDrop( SchemaDropperImpl.java:154 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop( SchemaDropperImpl.java:126 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop( SchemaDropperImpl.java:112 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction( SchemaManagementToolCoordinator.java:144 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process( SchemaManagementToolCoordinator.java:72 ) at org.hibernate.internal.SessionFactoryImpl.<init>( SessionFactoryImpl.java:310 ) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build ( SessionFactoryBuilderImpl.java:467 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:939 ) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory( HibernatePersistenceProvider.java:56 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:79 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:54 ) at jpabook.jpashop.JpaMain.main( JpaMain.java:14 ) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "DELIVERY" because "FKDBS21F1YI0COXY9Y0KXW4G9JF" depends on it; SQL statement: drop table Delivery if e [90107-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:632 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.command.ddl.DropTable.prepareDrop( DropTable.java:97 ) at org.h2.command.ddl.DropTable.update( DropTable.java:121 ) at org.h2.command.CommandContainer.update( CommandContainer.java:169 ) at org.h2.command.Command.executeUpdate( Command.java:252 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:408 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:576 ) at org.h2.engine.SessionRemote.done( SessionRemote.java:611 ) at org.h2.command.CommandRemote.executeUpdate( CommandRemote.java:237 ) at org.h2.jdbc.JdbcStatement.executeInternal( JdbcStatement.java:228 ) at org.h2.jdbc.JdbcStatement.execute( JdbcStatement.java:201 ) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:54 ) ... 15 more 8월 08, 2023 10:39:57 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " drop table Item if exists" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " drop table Item if exists" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:67 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlString( SchemaDropperImpl.java:375 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlStrings( SchemaDropperImpl.java:359 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.dropFromMetadata( SchemaDropperImpl.java:241 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.performDrop( SchemaDropperImpl.java:154 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop( SchemaDropperImpl.java:126 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop( SchemaDropperImpl.java:112 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction( SchemaManagementToolCoordinator.java:144 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process( SchemaManagementToolCoordinator.java:72 ) at org.hibernate.internal.SessionFactoryImpl.<init>( SessionFactoryImpl.java:310 ) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build ( SessionFactoryBuilderImpl.java:467 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:939 ) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory( HibernatePersistenceProvider.java:56 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:79 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:54 ) at jpabook.jpashop.JpaMain.main( JpaMain.java:14 ) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "ITEM" because "FK75MRPPRV8OIGH00Y92TIBW7ID, FK2SRBE8WJBANR4VTKRSB8ATQ7O, FKQQWSWM36Y8UQOH9EMTORUOXCV, FKABGE9EQALSPCEJIJ53RAT7PJH" depends on it; SQL statement: drop table Item if e [90107-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:632 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.command.ddl.DropTable.prepareDrop( DropTable.java:97 ) at org.h2.command.ddl.DropTable.update( DropTable.java:121 ) at org.h2.command.CommandContainer.update( CommandContainer.java:169 ) at org.h2.command.Command.executeUpdate( Command.java:252 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:408 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:576 ) at org.h2.engine.SessionRemote.done( SessionRemote.java:611 ) at org.h2.command.CommandRemote.executeUpdate( CommandRemote.java:237 ) at org.h2.jdbc.JdbcStatement.executeInternal( JdbcStatement.java:228 ) at org.h2.jdbc.JdbcStatement.execute( JdbcStatement.java:201 ) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:54 ) ... 15 more 8월 08, 2023 10:39:57 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " drop table Member if exists" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " drop table Member if exists" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:67 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlString( SchemaDropperImpl.java:375 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlStrings( SchemaDropperImpl.java:359 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.dropFromMetadata( SchemaDropperImpl.java:241 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.performDrop( SchemaDropperImpl.java:154 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop( SchemaDropperImpl.java:126 ) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop( SchemaDropperImpl.java:112 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction( SchemaManagementToolCoordinator.java:144 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process( SchemaManagementToolCoordinator.java:72 ) at org.hibernate.internal.SessionFactoryImpl.<init>( SessionFactoryImpl.java:310 ) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build ( SessionFactoryBuilderImpl.java:467 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:939 ) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory( HibernatePersistenceProvider.java:56 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:79 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:54 ) at jpabook.jpashop.JpaMain.main( JpaMain.java:14 ) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "MEMBER" because "FKH0DB7KQR88ED8HQTCQW3JKCIA" depends on it; SQL statement: drop table Member if e [90107-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:632 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.command.ddl.DropTable.prepareDrop( DropTable.java:97 ) at org.h2.command.ddl.DropTable.update( DropTable.java:121 ) at org.h2.command.CommandContainer.update( CommandContainer.java:169 ) at org.h2.command.Command.executeUpdate( Command.java:252 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:408 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:576 ) at org.h2.engine.SessionRemote.done( SessionRemote.java:611 ) at org.h2.command.CommandRemote.executeUpdate( CommandRemote.java:237 ) at org.h2.jdbc.JdbcStatement.executeInternal( JdbcStatement.java:228 ) at org.h2.jdbc.JdbcStatement.execute( JdbcStatement.java:201 ) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:54 ) ... 15 more 8월 08, 2023 10:39:57 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@5c723f2d] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. 8월 08, 2023 10:39:57 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " create table Category ( id bigint not null, name varchar(255), PARENT_ID bigint, primary key (id) )" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " create table Category ( id bigint not null, name varchar(255), PARENT_ID bigint, primary key (id) )" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:67 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString( SchemaCreatorImpl.java:440 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings( SchemaCreatorImpl.java:424 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata( SchemaCreatorImpl.java:315 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation( SchemaCreatorImpl.java:166 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation( SchemaCreatorImpl.java:135 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation( SchemaCreatorImpl.java:121 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction( SchemaManagementToolCoordinator.java:155 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process( SchemaManagementToolCoordinator.java:72 ) at org.hibernate.internal.SessionFactoryImpl.<init>( SessionFactoryImpl.java:310 ) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build ( SessionFactoryBuilderImpl.java:467 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:939 ) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory( HibernatePersistenceProvider.java:56 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:79 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:54 ) at jpabook.jpashop.JpaMain.main( JpaMain.java:14 ) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "CATEGORY" already exists; SQL statement: create table Category ( id bigint not null, name varchar(255), PARENT_ID bigint, primary key (id) [42101-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.command.ddl.CreateTable.update( CreateTable.java:91 ) at org.h2.command.CommandContainer.update( CommandContainer.java:169 ) at org.h2.command.Command.executeUpdate( Command.java:252 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:408 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:453 ) at org.h2.engine.SessionRemote.done( SessionRemote.java:611 ) at org.h2.command.CommandRemote.executeUpdate( CommandRemote.java:237 ) at org.h2.jdbc.JdbcStatement.executeInternal( JdbcStatement.java:228 ) at org.h2.jdbc.JdbcStatement.execute( JdbcStatement.java:201 ) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:54 ) ... 15 more 8월 08, 2023 10:39:57 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " create table Delivery ( id bigint not null, city varchar(255), deliveryStatus integer, street varchar(255), zipcode varchar(255), primary key (id) )" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " create table Delivery ( id bigint not null, city varchar(255), deliveryStatus integer, street varchar(255), zipcode varchar(255), primary key (id) )" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:67 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString( SchemaCreatorImpl.java:440 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings( SchemaCreatorImpl.java:424 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata( SchemaCreatorImpl.java:315 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation( SchemaCreatorImpl.java:166 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation( SchemaCreatorImpl.java:135 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation( SchemaCreatorImpl.java:121 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction( SchemaManagementToolCoordinator.java:155 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process( SchemaManagementToolCoordinator.java:72 ) at org.hibernate.internal.SessionFactoryImpl.<init>( SessionFactoryImpl.java:310 ) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build ( SessionFactoryBuilderImpl.java:467 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:939 ) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory( HibernatePersistenceProvider.java:56 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:79 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:54 ) at jpabook.jpashop.JpaMain.main( JpaMain.java:14 ) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "DELIVERY" already exists; SQL statement: create table Delivery ( id bigint not null, city varchar(255), deliveryStatus integer, street varchar(255), zipcode varchar(255), primary key (id) [42101-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.command.ddl.CreateTable.update( CreateTable.java:91 ) at org.h2.command.CommandContainer.update( CommandContainer.java:169 ) at org.h2.command.Command.executeUpdate( Command.java:252 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:408 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:453 ) at org.h2.engine.SessionRemote.done( SessionRemote.java:611 ) at org.h2.command.CommandRemote.executeUpdate( CommandRemote.java:237 ) at org.h2.jdbc.JdbcStatement.executeInternal( JdbcStatement.java:228 ) at org.h2.jdbc.JdbcStatement.execute( JdbcStatement.java:201 ) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:54 ) ... 15 more 8월 08, 2023 10:39:57 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " create table Item ( DTYPE varchar(31) not null, ITEM_ID bigint not null, name varchar(255), price integer not null, stockQuantity integer not null, actor varchar(255), director varchar(255), author varchar(255), isbn varchar(255), artist varchar(255), etc varchar(255), primary key (ITEM_ID) )" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " create table Item ( DTYPE varchar(31) not null, ITEM_ID bigint not null, name varchar(255), price integer not null, stockQuantity integer not null, actor varchar(255), director varchar(255), author varchar(255), isbn varchar(255), artist varchar(255), etc varchar(255), primary key (ITEM_ID) )" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:67 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString( SchemaCreatorImpl.java:440 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings( SchemaCreatorImpl.java:424 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata( SchemaCreatorImpl.java:315 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation( SchemaCreatorImpl.java:166 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation( SchemaCreatorImpl.java:135 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation( SchemaCreatorImpl.java:121 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction( SchemaManagementToolCoordinator.java:155 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process( SchemaManagementToolCoordinator.java:72 ) at org.hibernate.internal.SessionFactoryImpl.<init>( SessionFactoryImpl.java:310 ) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build ( SessionFactoryBuilderImpl.java:467 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:939 ) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory( HibernatePersistenceProvider.java:56 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:79 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:54 ) at jpabook.jpashop.JpaMain.main( JpaMain.java:14 ) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEM" already exists; SQL statement: create table Item ( DTYPE varchar(31) not null, ITEM_ID bigint not null, name varchar(255), price integer not null, stockQuantity integer not null, actor varchar(255), director varchar(255), author varchar(255), isbn varchar(255), artist varchar(255), etc varchar(255), primary key (ITEM_ID) [42101-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.command.ddl.CreateTable.update( CreateTable.java:91 ) at org.h2.command.CommandContainer.update( CommandContainer.java:169 ) at org.h2.command.Command.executeUpdate( Command.java:252 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:408 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:453 ) at org.h2.engine.SessionRemote.done( SessionRemote.java:611 ) at org.h2.command.CommandRemote.executeUpdate( CommandRemote.java:237 ) at org.h2.jdbc.JdbcStatement.executeInternal( JdbcStatement.java:228 ) at org.h2.jdbc.JdbcStatement.execute( JdbcStatement.java:201 ) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:54 ) ... 15 more 8월 08, 2023 10:39:57 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " create table Member ( MEMBER_ID bigint not null, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (MEMBER_ID) )" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " create table Member ( MEMBER_ID bigint not null, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (MEMBER_ID) )" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:67 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString( SchemaCreatorImpl.java:440 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings( SchemaCreatorImpl.java:424 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata( SchemaCreatorImpl.java:315 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation( SchemaCreatorImpl.java:166 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation( SchemaCreatorImpl.java:135 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation( SchemaCreatorImpl.java:121 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction( SchemaManagementToolCoordinator.java:155 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process( SchemaManagementToolCoordinator.java:72 ) at org.hibernate.internal.SessionFactoryImpl.<init>( SessionFactoryImpl.java:310 ) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build ( SessionFactoryBuilderImpl.java:467 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:939 ) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory( HibernatePersistenceProvider.java:56 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:79 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:54 ) at jpabook.jpashop.JpaMain.main( JpaMain.java:14 ) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" already exists; SQL statement: create table Member ( MEMBER_ID bigint not null, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (MEMBER_ID) [42101-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.command.ddl.CreateTable.update( CreateTable.java:91 ) at org.h2.command.CommandContainer.update( CommandContainer.java:169 ) at org.h2.command.Command.executeUpdate( Command.java:252 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:408 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:453 ) at org.h2.engine.SessionRemote.done( SessionRemote.java:611 ) at org.h2.command.CommandRemote.executeUpdate( CommandRemote.java:237 ) at org.h2.jdbc.JdbcStatement.executeInternal( JdbcStatement.java:228 ) at org.h2.jdbc.JdbcStatement.execute( JdbcStatement.java:201 ) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:54 ) ... 15 more 8월 08, 2023 10:39:57 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " alter table Category add constraint FK8tepc1qkmluodspg6tnliwhit foreign key (PARENT_ID) references Category" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " alter table Category add constraint FK8tepc1qkmluodspg6tnliwhit foreign key (PARENT_ID) references Category" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:67 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString( SchemaCreatorImpl.java:440 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings( SchemaCreatorImpl.java:424 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata( SchemaCreatorImpl.java:375 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation( SchemaCreatorImpl.java:166 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation( SchemaCreatorImpl.java:135 ) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation( SchemaCreatorImpl.java:121 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction( SchemaManagementToolCoordinator.java:155 ) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process( SchemaManagementToolCoordinator.java:72 ) at org.hibernate.internal.SessionFactoryImpl.<init>( SessionFactoryImpl.java:310 ) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build ( SessionFactoryBuilderImpl.java:467 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:939 ) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory( HibernatePersistenceProvider.java:56 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:79 ) at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:54 ) at jpabook.jpashop.JpaMain.main( JpaMain.java:14 ) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK8TEPC1QKMLUODSPG6TNLIWHIT" already exists; SQL statement: alter table Category add constraint FK8tepc1qkmluodspg6tnliwhit foreign key (PARENT_ID) references Cat [90045-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:632 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate( AlterTableAddConstraint.java:109 ) at org.h2.command.ddl.AlterTableAddConstraint.update( AlterTableAddConstraint.java:72 ) at org.h2.command.ddl.AlterTable.update( AlterTable.java:46 ) at org.h2.command.CommandContainer.update( CommandContainer.java:169 ) at org.h2.command.Command.executeUpdate( Command.java:252 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:408 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:576 ) at org.h2.engine.SessionRemote.done( SessionRemote.java:611 ) at org.h2.command.CommandRemote.executeUpdate( CommandRemote.java:237 ) at org.h2.jdbc.JdbcStatement.executeInternal( JdbcStatement.java:228 ) at org.h2.jdbc.JdbcStatement.execute( JdbcStatement.java:201 ) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept( GenerationTargetToDatabase.java:54 ) ... 15 more Hibernate: create table Category ( id bigint not null, name varchar(255), PARENT_ID bigint, primary key (id) ) Hibernate: create table CATEGORY_ITEM ( CATEGORY_ID bigint not null, ITEM_ID bigint not null ) Hibernate: create table Delivery ( id bigint not null, city varchar(255), deliveryStatus integer, street varchar(255), zipcode varchar(255), primary key (id) ) Hibernate: create table Item ( DTYPE varchar(31) not null, ITEM_ID bigint not null, name varchar(255), price integer not null, stockQuantity integer not null, actor varchar(255), director varchar(255), author varchar(255), isbn varchar(255), artist varchar(255), etc varchar(255), primary key (ITEM_ID) ) Hibernate: create table Member ( MEMBER_ID bigint not null, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (MEMBER_ID) ) Hibernate: create table OrderItem ( ORDER_ITEM_ID bigint not null, ITEM_ID bigint, ORDER_ID bigint, primary key (ORDER_ITEM_ID) ) Hibernate: create table ORDERS ( ORDER_ID bigint not null, orderDate timestamp, status varchar(255), DELIVERY_ID bigint, MEMBER_ID bigint, primary key (ORDER_ID) ) Hibernate: alter table Category add constraint FK8tepc1qkmluodspg6tnliwhit foreign key (PARENT_ID) references Category Hibernate: alter table CATEGORY_ITEM add constraint FKf1uerpnmn49vl1spbbplgxaun foreign key (ITEM_ID) references Item Hibernate: alter table CATEGORY_ITEM add constraint FKjip0or3vemixccl6vx0kluj03 foreign key (CATEGORY_ID) references Category Hibernate: alter table OrderItem add constraint FKabge9eqalspcejij53rat7pjh foreign key (ITEM_ID) references Item Hibernate: alter table OrderItem add constraint FKk7lmf97wukpquk6d8blxy5neq foreign key (ORDER_ID) references ORDERS Hibernate: alter table ORDERS add constraint FKdbs21f1yi0coxy9y0kxw4g9jf foreign key (DELIVERY_ID) references Delivery Hibernate: alter table ORDERS add constraint FKh0db7kqr88ed8hqtcqw3jkcia foreign key (MEMBER_ID) references Member 8월 08, 2023 10:39:57 오후 org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@30f74e79' Hibernate: call next value for hibernate_sequence Hibernate: /* insert jpabook.jpashop.domain.Book */ insert into Item (name, price, stockQuantity, author, isbn, DTYPE, ITEM_ID) values (?, ?, ?, ?, ?, 'Book', ?) 8월 08, 2023 10:39:57 오후 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions WARN: SQL Error: 23505, SQLState: 23505 8월 08, 2023 10:39:57 오후 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: Unique index or primary key violation: "PRIMARY KEY ON PUBLIC.ITEM(ITEM_ID) ( /* key:1 */ 'Book', CAST(1 AS BIGINT), 'dd', 0, 0, NULL, NULL, 'abc', NULL, NULL, NULL)"; SQL statement: /* insert jpabook.jpashop.domain.Book */ insert into Item (name, price, stockQuantity, author, isbn, DTYPE, I [23505-200] 8월 08, 2023 10:39:57 오후 org.hibernate.internal.ExceptionMapperStandardImpl mapManagedFlushFailure ERROR: HHH000346: Error during managed flush [org.hibernate.exception.ConstraintViolationException: could not execute statement] 8월 08, 2023 10:39:57 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop INFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp:// localhost/~/jpashop ] Process finished with exit code 0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강의 내에서 스프링 없이 테스트 코드를 짜는 것이 좋다고 하신 것을 보고 실제로 테스트 코드는 스프링을 의존하지 않고 짜는 것이 무엇인지 궁금해졌습니다. 실제로 강의에서 작성하는 내용 중에, 어느 부분이 스프링에 의존해서 테스트를 한 것인지, 또한 그러한 스프링 의존 테스트를 순수 자바 기반의 테스트로 바꾸며 어떤 식으로 나오게 될지 궁금합니다. 감사합니다.