[Seasar-user:17408] Re: [S2JDBC-Gen]oidを含む列をダンプできない
Takafumi Yoshida
[E-MAIL ADDRESS DELETED]
2009年 5月 11日 (月) 16:15:47 JST
いつもお世話になります。吉田@オプティクスです。
2009/05/11 15:30 Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>:
> とりあえずの対応策ですが、
> org.seasar.extension.jdbc.gen.internal.factory.FactoryImplを継承して
> 次のようなクラスを作ってください。
>
> public class MyFactory extends FactoryImpl {
> @Override
> public SqlUnitExecutor createSqlUnitExecutor(Command command,
> DataSource dataSource, UserTransaction userTransaction,
> boolean haltOnError) {
> UserTransaction ut = SingletonS2Container
> .getComponent(UserTransaction.class);
> return super
> .createSqlUnitExecutor(command, dataSource, ut, haltOnError);
> }
> }
>
> 次に、このクラスの完全修飾名をGen-DdlタスクのfactoryClassNameパラメータ
> に設定してください。
上記のようにして試してみましたが、以下のエラーが発生します。
C:\test\s2jdbc-gen-build.xml:52: Exception in thread "main"
org.seasar.extension.jdbc.gen.exception.CommandFailedRuntimeException:
[ES2JDBCGen0005]コマンド(org.seasar.extension.jdbc.gen.internal.command.GenerateDdlCommand)の実行に失敗しました。理由はorg.seasar.framework.exception.SRuntimeException:
[ES2JDBCGen0021]トランザクションに関する例外が発生しました。理由はorg.postgresql.util.PSQLException:
ERROR: current transaction is aborted, commands ignored until end of
transaction block
at org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.execute(AbstractCommand.java:160)
at org.seasar.extension.jdbc.gen.internal.command.CommandInvokerImpl.invoke(CommandInvokerImpl.java:29)
at org.seasar.extension.jdbc.gen.command.CommandAdapter.main(CommandAdapter.java:61)
Caused by: org.seasar.framework.exception.SRuntimeException:
[ES2JDBCGen0021]トランザクションに関する例外が発生しました。理由はorg.postgresql.util.PSQLException:
ERROR: current transaction is aborted, commands ignored until end of
transaction block
at org.seasar.extension.jdbc.gen.internal.data.DumperImpl.dumpTableWithSort(DumperImpl.java:125)
at org.seasar.extension.jdbc.gen.internal.data.DumperImpl.dump(DumperImpl.java:83)
at org.seasar.extension.jdbc.gen.internal.command.GenerateDdlCommand$DdlVersionIncrementerCallback$1.execute(GenerateDdlCommand.java:1353)
at org.seasar.extension.jdbc.gen.internal.sql.SqlUnitExecutorImpl.executeInternal(SqlUnitExecutorImpl.java:92)
at org.seasar.extension.jdbc.gen.internal.sql.SqlUnitExecutorImpl.execute(SqlUnitExecutorImpl.java:71)
at org.seasar.extension.jdbc.gen.internal.command.GenerateDdlCommand$DdlVersionIncrementerCallback.execute(GenerateDdlCommand.java:1350)
at org.seasar.extension.jdbc.gen.internal.version.DdlVersionIncrementerImpl.increment(DdlVersionIncrementerImpl.java:122)
at org.seasar.extension.jdbc.gen.internal.command.GenerateDdlCommand.doExecute(GenerateDdlCommand.java:1160)
at org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.execute(AbstractCommand.java:158)
... 2 more
Caused by: org.postgresql.util.PSQLException: ERROR: current
transaction is aborted, commands ignored until end of transaction
block
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:337)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:236)
at org.seasar.extension.jdbc.gen.internal.data.DumperImpl.dumpRows(DumperImpl.java:176)
at org.seasar.extension.jdbc.gen.internal.data.DumperImpl.dumpTableWithSort(DumperImpl.java:113)
... 10 more
#EclipseからAntのタスクをデバッグできればもう少し調べられるのに
#デバッグできないのは、なぜなんだろう・・orz
以上、宜しくお願いいたします。
Seasar-user メーリングリストの案内