[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 メーリングリストの案内