인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

리자몽님의 프로필 이미지
리자몽

작성한 질문수

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

기존 테이블이 삭제가 안되는 문제???

작성

·

416

0

다양한 연관관계 매핑 - 실전 예제 3 을 수강하는중입니다.

에러 메시지가 테이블이 삭제가 되지 않는답니다.. 에러 코드는 맨 아래 있습니다.

 

유사한 질문글이 있어서

그래서 제가 h2에서 drop table 테이블 명으로 테이블을 삭제하려고 하는데 삭제가 되지 않습니다.

ex) drop table CATEGORY ; 하면

Cannot drop "CATEGORY" because "FKJIP0OR3VEMIXCCL6VX0KLUJ03" depends on it; SQL statement:
drop table CATEGORY [90107-214]
 90107/90107 (도움말)

이런식으로 뜹니다.

 

어떻게 해결하면 좋을까요?

 

 

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

7월 04, 2022 6:48:23 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection

INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@2b50150] 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월 04, 2022 6:48:23 오후 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  [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.lang.Thread.run(Thread.java:750)

 

at org.h2.message.DbException.getJdbcSQLException(DbException.java:632)

at org.h2.engine.SessionRemote.readException(SessionRemote.java:637)

at org.h2.engine.SessionRemote.done(SessionRemote.java:606)

at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227)

at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252)

at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

... 15 more

 

7월 04, 2022 6:48:23 오후 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  [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.lang.Thread.run(Thread.java:750)

 

at org.h2.message.DbException.getJdbcSQLException(DbException.java:632)

at org.h2.engine.SessionRemote.readException(SessionRemote.java:637)

at org.h2.engine.SessionRemote.done(SessionRemote.java:606)

at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227)

at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252)

at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

... 15 more

 

7월 04, 2022 6:48:23 오후 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 "FKABGE9EQALSPCEJIJ53RAT7PJH" depends on it; SQL statement:

 

    drop table Item if  [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.lang.Thread.run(Thread.java:750)

 

at org.h2.message.DbException.getJdbcSQLException(DbException.java:632)

at org.h2.engine.SessionRemote.readException(SessionRemote.java:637)

at org.h2.engine.SessionRemote.done(SessionRemote.java:606)

at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227)

at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252)

at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

... 15 more

 

7월 04, 2022 6:48:23 오후 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  [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.lang.Thread.run(Thread.java:750)

 

at org.h2.message.DbException.getJdbcSQLException(DbException.java:632)

at org.h2.engine.SessionRemote.readException(SessionRemote.java:637)

at org.h2.engine.SessionRemote.done(SessionRemote.java:606)

at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227)

at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252)

at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

... 15 more

 

7월 04, 2022 6:48:23 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection

INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@50b1f030] 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월 04, 2022 6:48:23 오후 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,

 [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.lang.Thread.run(Thread.java:750)

 

at org.h2.message.DbException.getJdbcSQLException(DbException.java:502)

at org.h2.engine.SessionRemote.readException(SessionRemote.java:637)

at org.h2.engine.SessionRemote.done(SessionRemote.java:606)

at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227)

at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252)

at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

... 15 more

 

7월 04, 2022 6:48:23 오후 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),

        status 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),

        status 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),

        status integer,

        street varchar(255),

        zipcode varchar(255),

 [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.lang.Thread.run(Thread.java:750)

 

at org.h2.message.DbException.getJdbcSQLException(DbException.java:502)

at org.h2.engine.SessionRemote.readException(SessionRemote.java:637)

at org.h2.engine.SessionRemote.done(SessionRemote.java:606)

at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227)

at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252)

at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

... 15 more

 

7월 04, 2022 6:48:23 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException

WARN: GenerationTarget encountered exception accepting command : Error executing DDL "

    create table Item (

       ITEM_ID bigint not null,

        name varchar(255),

        price integer not null,

        stockQuantity integer not null,

        primary key (ITEM_ID)

    )" via JDBC Statement

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "

    create table Item (

       ITEM_ID bigint not null,

        name varchar(255),

        price integer not null,

        stockQuantity integer not null,

        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 (

       ITEM_ID bigint not null,

        name varchar(255),

        price integer not null,

        stockQuantity integer not null,

 [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.lang.Thread.run(Thread.java:750)

 

at org.h2.message.DbException.getJdbcSQLException(DbException.java:502)

at org.h2.engine.SessionRemote.readException(SessionRemote.java:637)

at org.h2.engine.SessionRemote.done(SessionRemote.java:606)

at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227)

at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252)

at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

... 15 more

 

7월 04, 2022 6:48:23 오후 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),

 [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.lang.Thread.run(Thread.java:750)

 

at org.h2.message.DbException.getJdbcSQLException(DbException.java:502)

at org.h2.engine.SessionRemote.readException(SessionRemote.java:637)

at org.h2.engine.SessionRemote.done(SessionRemote.java:606)

at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227)

at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252)

at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

... 15 more

 

Hibernate: 

    

    drop sequence if exists hibernate_sequence

Hibernate: create sequence hibernate_sequence start with 1 increment by 1

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),

        status integer,

        street varchar(255),

        zipcode varchar(255),

        primary key (id)

    )

Hibernate: 

    

    create table Item (

       ITEM_ID bigint not null,

        name varchar(255),

        price integer not null,

        stockQuantity integer not null,

        primary key (ITEM_ID)

    )

Hibernate: 

    

    create table Member (

       member_id bigint not null,

        city varchar(255),

        name varchar(255),

        street varchar(255),

        zipcode varchar(255),

        primary key (member_id)

    )

Hibernate: 

    

    create table OrderItem (

       ORDER_ITEM_ID bigint not null,

        count integer not null,

        orderPrice integer 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

7월 04, 2022 6:48:23 오후 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 Ca [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.lang.Thread.run(Thread.java:750)

 

at org.h2.message.DbException.getJdbcSQLException(DbException.java:632)

at org.h2.engine.SessionRemote.readException(SessionRemote.java:637)

at org.h2.engine.SessionRemote.done(SessionRemote.java:606)

at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227)

at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252)

at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

... 15 more

 

7월 04, 2022 6:48:23 오후 org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources

INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@53bf7094'

~~~~~~~ 여기 안오고?

Hibernate: 

    call next value for hibernate_sequence

Hibernate: 

    call next value for hibernate_sequence

Hibernate: 

    /* insert jpabook.jpashop.domain.Order

        */ insert 

        into

            ORDERS

            (DELIVERY_ID, MEMBER_ID, orderDate, status, ORDER_ID) 

        values

            (?, ?, ?, ?, ?)

Hibernate: 

    /* insert jpabook.jpashop.domain.OrderItem

        */ insert 

        into

            OrderItem

            (count, ITEM_ID, ORDER_ID, orderPrice, ORDER_ITEM_ID) 

        values

            (?, ?, ?, ?, ?)

7월 04, 2022 6:48:23 오후 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

0

안녕하세요. 리자몽님, 공식 서포터즈 OMG입니다.

drop table CATEGORY ; 말고 아래 2개의 명령어를 각각 사용하여 확인해주세요.

 

truncate table CATEGORY ; 

drop table CATEGORY if exists ; 

 

해결이 안될 경우 댓글남겨주세요.

감사합니다.

리자몽님의 프로필 이미지
리자몽
질문자

답변 감사합니다.

말씀하신데로 입력해 봤으나

truncate table CATEGORY ; 을 입력하면 다음과 같은 에러가

Cannot truncate "PUBLIC.CATEGORY"; SQL statement:
truncate table category [90106-214]
 90106/90106 (도움말)

drop table CATEGORY if exists ; 을 입력하면 다음과 같은 에러가 발생합니다.

Cannot drop "CATEGORY" because "FKJIP0OR3VEMIXCCL6VX0KLUJ03" depends on it; SQL statement:
drop table CATEGORY if exists [90107-214]
 90107/90107 (도움말)

아래 링크를 참고해주세요.

h2 버전을 1.4.200으로 진행해주세요.

category에서 안되면 다른 테이블을 위 명령어로 삭제해서 하나씩 삭제하시거나,

기존 test db를 지우고, 새로 DB를 만드셔야 할 것 같아요.

https://www.inflearn.com/questions/90486

리자몽님의 프로필 이미지
리자몽
질문자

답변 감사합니다. 다시 오랜만에 댓글을 다네요

일단

h2 버전은 1.4.200 으로 했고

hibernate 버전 5.4.22는 찾을 수 없어서 기존 버전인 5.3.10 을 그대로 사용했습니다.

말씀하신대로

jpashop.mv.db를 삭제하고 다시 실행하면 한번은 되지만

그 뒤로 다시 실행을 하면 또 똑같은 에러가 발생합니다...

여전히 다른 테이블 삭제는 안되고요..

리자몽님의 프로필 이미지
리자몽

작성한 질문수

질문하기