인프런 커뮤니티 질문&답변

현승 이님의 프로필 이미지
현승 이

작성한 질문수

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

Hello JPA - 애플리케이션 개발

Hibernate: drop table Member if exists 오류

작성

·

976

0


=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
파일링크입니다
https://drive.google.com/file/d/1AKSK1QgeZV6UZ5HQE9943SOaho3fCGxN/view?usp=sharing
11분 30초 내용 부분을 실행 시키는데 이런 오류가 발생합니다.
h2데이터 베이스 내에서 drop을 시켜도 자꾸 같은 오류가 발생합니다
Hibernate: drop table Member if exists 7월 05, 2022 4:01:18 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@642505c7] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. Hibernate: create table Member ( id bigint not null, name varchar(255), primary key (id) ) 7월 05, 2022 4:01:18 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@1abfe081] 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. 7월 05, 2022 4:01:18 오후 org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@6014a9ba' 7월 05, 2022 4:01:18 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop INFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/test] 7월 05, 2022 4:01:18 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections close ERROR: Connection leak detected: there are 1 unclosed connections upon shutting down pool jdbc:h2:tcp://localhost/~/test 종료 코드 0(으)로 완료된 프로세스

 

답변 1

0

안녕하세요. 현승 이님, 공식 서포터즈 David입니다.

tx.commit() 코드가 빠져있습니다.

강의 내용을 다시 한 번 살펴주세요.

감사합니다.

현승 이님의 프로필 이미지
현승 이
질문자

tx.commit() 코드를 추가한 후 실행을 하였을 때 

id : 1 name :hello a 는 저장이 되는데 id:2 name:hellob를 설정할경우  id : 1 name :a이 사라지고 그위에 id:2 name:hellob가 저장이됩니다. 계속 같은 오류인 Hibernate: drop table Member if exists 발생합니다.  member 테이블을 drop하고 다시 만들어도 같은 작업이 이루어 집니다. 그리고 16분 40초에 있는 System구문을 출력했을떄  다른 구문은 동영상과 같이 출력되는데 System구문은 작동하지않습니다. 

id:2 name:hellob를 저장하는 코드를 어떻게 작성하셨는지 보여주세요.

 drop table Member if exists 자체는 오류가 아닙니다. 

<property name="hibernate.hbm2ddl.auto" value="create" /> 해당 옵션에 따른 기본 동작입니다.

올려주신 이미지에 작성된 코드대로 하면 당연히 id:2 hellob가 저장됩니다.

ddl.auto create가 어떻게 동작하는지 확인 부탁드려요.

현승 이님의 프로필 이미지
현승 이
질문자

<property name="hibernate.hbm2ddl.auto" value="create" />
w주석처리를 하니 해결되었습니다 감사합니다.
현승 이님의 프로필 이미지
현승 이

작성한 질문수

질문하기