[Seasar-user:6046] [S2Dao]daoのテストでエラー(テーブルが見つからない)
satoh
[E-MAIL ADDRESS DELETED]
2007年 2月 6日 (火) 17:04:15 JST
佐藤徹太郎です。お世話になっております。
Dolteng 0.16.1でChuraProject(Teeda+S2Dao)を作り、daoをJUnitでテストしたらエ
ラーが出ます。
障害トレースには下記のように表示されます。
org.seasar.framework.exception.SQLRuntimeException: [ESSR0071]SQLで例外
(ErrorCode=42102, SQLState=42S02)が発生しました。理由はorg.seasar.framework.
exception.SSQLException: [ESSR0072]SQLで例外(SQL=[select shelfNumber,
rowNumber from book where id=?], ErrorCode={1}, SQLState={2})が発生しました
at
org.seasar.extension.jdbc.util.ConnectionUtil.prepareStatement(ConnectionUti
l.java:52)
at
org.seasar.extension.jdbc.impl.BasicStatementFactory.createPreparedStatement
(BasicStatementFactory.java:34)
at
org.seasar.extension.jdbc.impl.BasicHandler.prepareStatement(BasicHandler.ja
va:95)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.prepareStatement(BasicSele
ctHandler.java:146)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler
.java:131)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler
.java:120)
at
org.seasar.dao.impl.SelectDynamicCommand.execute(SelectDynamicCommand.java:5
5)
at
org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:53
)
at
book.chura.dao.BookInfoDao$$EnhancedByS2AOP$$e34726$$MethodInvocation$$findB
ookPosition0.proceed(MethodInvocationClassGenerator.java)
at
org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceIntercept
or.java:59)
at
book.chura.dao.BookInfoDao$$EnhancedByS2AOP$$e34726$$MethodInvocation$$findB
ookPosition0.proceed(MethodInvocationClassGenerator.java)
at
book.chura.dao.BookInfoDao$$EnhancedByS2AOP$$e34726.findBookPosition(BookInf
oDao$$EnhancedByS2AOP$$e34726.java)
at
book.chura.dao.ReturnBookDaoTest.testFindBookPosition(ReturnBookDaoTest.java
:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:164)
at
org.seasar.framework.unit.S2FrameworkTestCase.doRunTest(S2FrameworkTestCase.
java:305)
at
org.seasar.extension.unit.S2TestCase.doRunTest(S2TestCase.java:92)
at
org.seasar.framework.unit.S2FrameworkTestCase.runBare(S2FrameworkTestCase.ja
va:190)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at
junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3T
estReference.java:128)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:3
8)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu
nner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu
nner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.
java:386)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner
.java:196)
Caused by: org.seasar.framework.exception.SSQLException: [ESSR0072]SQLで例外
(SQL=[select shelfNumber, rowNumber from book where id=?], ErrorCode={1},
SQLState={2})が発生しました
at
org.seasar.extension.dbcp.impl.ConnectionWrapperImpl.wrapException(Connectio
nWrapperImpl.java:526)
at
org.seasar.extension.dbcp.impl.ConnectionWrapperImpl.prepareStatement(Connec
tionWrapperImpl.java:144)
at
org.seasar.extension.jdbc.util.ConnectionUtil.prepareStatement(ConnectionUti
l.java:50)
... 32 more
Caused by: org.h2.jdbc.JdbcSQLException: Table BOOK not found; SQL
statement: select shelfNumber, rowNumber from book where id=? [42S02-30]
org.h2.jdbc.JdbcSQLException: Table BOOK not found; SQL statement: select
shelfNumber, rowNumber from book where id=? [42S02-30]
at org.h2.message.Message.addSQL(Message.java:338)
at org.h2.command.Parser.parse(Parser.java:224)
at org.h2.command.Parser.prepareCommand(Parser.java:189)
at org.h2.engine.Session.prepareLocal(Session.java:170)
at org.h2.server.TcpServerThread.process(TcpServerThread.java:
200)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:127)
at java.lang.Thread.run(Thread.java:595)
org.h2.jdbc.JdbcSQLException: Table BOOK not found [42S02-30]
at org.h2.message.Message.getSQLException(Message.java:67)
at org.h2.message.Message.getSQLException(Message.java:49)
at org.h2.schema.Schema.getTableOrView(Schema.java:199)
at org.h2.command.Parser.readTableFilter(Parser.java:704)
at
org.h2.command.Parser.parseSelectSimpleFromPart(Parser.java:1162)
at org.h2.command.Parser.parseSelectSimple(Parser.java:1229)
at org.h2.command.Parser.parseSelectSub(Parser.java:1156)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1043)
at org.h2.command.Parser.parseSelect(Parser.java:1036)
at org.h2.command.Parser.parse(Parser.java:331)
at org.h2.command.Parser.parse(Parser.java:218)
at org.h2.command.Parser.prepareCommand(Parser.java:189)
at org.h2.engine.Session.prepareLocal(Session.java:170)
at org.h2.server.TcpServerThread.process(TcpServerThread.java:
200)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:127)
at java.lang.Thread.run(Thread.java:595)
[42S02-30]
at org.h2.engine.SessionRemote.done(SessionRemote.java:288)
at org.h2.command.CommandRemote.prepare(CommandRemote.java:40)
at org.h2.command.CommandRemote.<init>(CommandRemote.java:54)
at
org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:224)
at
org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:946)
at
org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:1082)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.
java:135)
at
org.seasar.extension.dbcp.impl.ConnectionWrapperImpl.prepareStatement(Connec
tionWrapperImpl.java:140)
... 33 more
コンソールには下記が表示されます。
DEBUG 2007-02-06 16:13:23,109 [main] クラス
(book.chura.dao.BookInfoDao[bookInfoDao])のコンポーネント定義を登録します
DEBUG 2007-02-06 16:13:23,234 [main] クラス
(book.chura.dao.RentInfoDao[rentInfoDao])のコンポーネント定義を登録します
DEBUG 2007-02-06 16:13:23,312 [main] BEGIN
book.chura.dao.BookInfoDao#findBookPosition(039911174)
DEBUG 2007-02-06 16:13:24,703 [main] 物理的なコネクションを取得しました
DEBUG 2007-02-06 16:13:24,703 [main] 論理的なコネクションを取得しました
WARN 2007-02-06 16:13:25,156 [main] テーブル(book)が見つかりません
DEBUG 2007-02-06 16:13:25,281 [main] 論理的なコネクションを閉じました
DEBUG 2007-02-06 16:13:25,406 [main] select shelfNumber, rowNumber from book
where id='039911174'
DEBUG 2007-02-06 16:13:25,406 [main] 論理的なコネクションを取得しました
DEBUG 2007-02-06 16:13:25,734 [main] 物理的なコネクションを閉じました
DEBUG 2007-02-06 16:13:25,734 [main] END
book.chura.dao.BookInfoDao#findBookPosition(039911174) Throwable:org.seasar.
framework.exception.SQLRuntimeException: [ESSR0071]SQLで例外
(ErrorCode=42102, SQLState=42S02)が発生しました。理由はorg.seasar.framework.
exception.SSQLException: [ESSR0072]SQLで例外(SQL=[select shelfNumber,
rowNumber from book where id=?], ErrorCode={1}, SQLState={2})が発生しました
テーブルを作ったはずなのに「テーブル(book)が見つかりません」という表示がされ
ます。
テーブルを作った時の方法は、
プロジェクトを右クリック、H2をクリック、View DataBase Managerをクリック
Connectをクリック、SQL statementの枠の中にcreate table文を書きました。
このやり方で正しいのでしょうか?
ほかになにかH2の設定か何かしなければならないのでしょか?
よろしくお願いいたします。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20070206/d4c86585/attachment.html
Seasar-user メーリングリストの案内