인프런 커뮤니티 질문&답변
테이블 생성 오류
작성
·
389
0
테이블 생성하는데 이런 오류가 뜹니다..
The database is read only; SQL statement:
create table member
(
id bigint generated by default as identity,
name varchar(255),
primary key (id)
) [90097-200] 90097/90097 (도움말)
org.h2.jdbc.JdbcSQLNonTransientException: The database is read only; SQL statement:
create table member
(
id bigint generated by default as identity,
name varchar(255),
primary key (id)
) [90097-200]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:505)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
at org.h2.message.DbException.get(DbException.java:205)
at org.h2.message.DbException.get(DbException.java:181)
at org.h2.message.DbException.get(DbException.java:170)
at org.h2.engine.Database.checkWritingAllowed(Database.java:2115)
at org.h2.engine.Database.addSchemaObject(Database.java:1131)
at org.h2.table.Column.convertAutoIncrementToSequence(Column.java:460)
at org.h2.command.ddl.CommandWithColumns.generateSequences(CommandWithColumns.java:103)
at org.h2.command.ddl.CreateTable.update(CreateTable.java:112)
at org.h2.command.CommandContainer.update(CommandContainer.java:198)
at org.h2.command.Command.executeUpdate(Command.java:251)
at org.h2.server.TcpServerThread.process(TcpServerThread.java:406)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:183)
at java.base/java.lang.Thread.run(Thread.java:832)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:505)
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.h2.server.web.WebApp.getResult(WebApp.java:1459)
at org.h2.server.web.WebApp.query(WebApp.java:1116)
at org.h2.server.web.WebApp$1.next(WebApp.java:1078)
at org.h2.server.web.WebApp$1.next(WebApp.java:1065)
at org.h2.server.web.WebThread.process(WebThread.java:178)
at org.h2.server.web.WebThread.run(WebThread.java:94)
at java.base/java.lang.Thread.run(Thread.java:832)
퀴즈
순수 JDBC를 사용할 때, 데이터베이스 리소스(연결, Statement 등) 관리가 어려웠던 주된 이유는 무엇일까요?
SQL 쿼리를 직접 작성해야 해서
각 리소스를 사용 후 반드시 직접 닫아줘야 해서
테스트 간 데이터 독립성을 보장하기 어려워서
의존성 주입 설정이 복잡해서





