[seasar-dotnet:790] BooleanToIntCommandFactoryの利用について

Takafumi Yoshida [E-MAIL ADDRESS DELETED]
2008年 3月 11日 (火) 13:13:31 JST


いつもお世話になります。吉田@オプティクスです。

以下の環境で、BooleanToIntCommandFactoryを使用しようとしています。
S2Container.NET 1.3.6
ODP.NET 10.2.0.100
Oracle 10.1.0

Entityのフィールドをbool型で定義、対応するテーブルのフィールドはNUMBER(1,0)で
作成し、diconファイルのBasicCommandFactoryをBooleanToIntCommandFactoryに
置き換えました。

  <!--
  <component class="Seasar.Extension.ADO.Impl.BasicCommandFactory" />
  -->
  <component class="Seasar.Extension.ADO.Impl.BooleanToIntCommandFactory" />

その後Daoのメソッドを実行すると、以下のエラーが発生します。
ERROR 2008-03-11 13:11:27,405 [10]
Seasar.Framework.Exceptions.SQLRuntimeException:
[ESSR0071]SQLで例外が発生しました。理由はSystem.InvalidCastException: 型
'Seasar.Extension.ADO.Impl.BooleanToIntParameter' のオブジェクトを型
'Oracle.DataAccess.Client.OracleParameter' にキャストできません。
   場所 Oracle.DataAccess.Client.OracleParameterCollection.Add(Object obj)
   場所 Seasar.Extension.ADO.Types.BaseValueType.BindValue(IDbCommand
cmd, String columnName, Object value, DbType dbType,
ParameterDirection direction)
   場所 Seasar.Extension.ADO.Types.BaseValueType.BindValue(IDbCommand
cmd, String columnName, Object value, DbType dbType)
   場所 Seasar.Extension.ADO.Types.BooleanType.BindValue(IDbCommand cmd,
String columnName, Object value)
   場所 Seasar.Extension.ADO.Impl.BasicHandler.BindArgs(IDbCommand
command, Object[] args, Type[] argTypes) --->
System.InvalidCastException: 型
'Seasar.Extension.ADO.Impl.BooleanToIntParameter' のオブジェクトを型
'Oracle.DataAccess.Client.OracleParameter' にキャストできません。
   場所 Oracle.DataAccess.Client.OracleParameterCollection.Add(Object obj)
   場所 Seasar.Extension.ADO.Types.BaseValueType.BindValue(IDbCommand
cmd, String columnName, Object value, DbType dbType,
ParameterDirection direction)
   場所 Seasar.Extension.ADO.Types.BaseValueType.BindValue(IDbCommand
cmd, String columnName, Object value, DbType dbType)
   場所 Seasar.Extension.ADO.Types.BooleanType.BindValue(IDbCommand cmd,
String columnName, Object value)
   場所 Seasar.Extension.ADO.Impl.BasicHandler.BindArgs(IDbCommand
command, Object[] args, Type[] argTypes)


どのようにすれば、、BooleanToIntCommandFactoryを利用できますでしょうか?

以上、宜しくお願いいたします。


seasar-dotnet メーリングリストの案内