[seasar-dotnet:526] Nullableカラムの自動生成 Insert、Updateで型キャストエラー
KIYOSUE Minoru
[E-MAIL ADDRESS DELETED]
2007年 7月 1日 (日) 23:37:18 JST
度々の質問で大変恐縮に存じます、清末です。
DAOのS2UnitTestを開始し、Null可の項目を作成し、実行したところ
次のエラーとなってしまいます。
failed: [ESSR0071]SQLで例外が発生しました。理由は
System.InvalidCastException: 型 'System.Int32' のオブジェクトを型
'Nullables.INullableType' にキャストできません。
場所 Seasar.Extension.ADO.Types.NHibernateNullableBaseType
.GetBindValue(Object value)
場所 Seasar.Extension.ADO.Types.BaseValueType.BindValue
(IDbCommand cmd, String columnName, Object value,
DbType dbType, ParameterDirection direction)
場所 Seasar.Extension.ADO.Types.NHibernateNullableInt32Type
.BindValue(IDbCommand cmd, String columnName, Object value)
場所 Seasar.Extension.ADO.Impl.BasicHandler.BindArgs
(IDbCommand command, Object[] args, Type[] argTypes)
Seasar.Framework.Exceptions.SQLRuntimeException
Message: [ESSR0071]SQLで例外が発生しました。理由は
System.InvalidCastException: 型 'System.Int32' のオブジェクトを型
'Nullables.INullableType' にキャストできません。
場所 Seasar.Extension.ADO.Types.NHibernateNullableBaseType
.GetBindValue(Object value)
場所 Seasar.Extension.ADO.Types.BaseValueType.BindValue
(IDbCommand cmd, String columnName, Object value,
DbType dbType, ParameterDirection direction)
場所 Seasar.Extension.ADO.Types.NHibernateNullableInt32Type
.BindValue(IDbCommand cmd, String columnName, Object value)
場所 Seasar.Extension.ADO.Impl.BasicHandler.BindArgs
(IDbCommand command, Object[] args, Type[] argTypes)
Source: Seasar
StackTrace:
場所 Seasar.Extension.ADO.Impl.BasicHandler.BindArgs
(IDbCommand command, Object[] args, Type[] argTypes)
場所 Seasar.Dao.Impl.AbstractAutoHandler.Execute
(IDbConnection connection, Object bean)
場所 Seasar.Dao.Impl.AbstractAutoHandler.Execute(Object[] args)
場所 Seasar.Dao.Impl.AbstractAutoStaticCommand.Execute
(Object[] args)
場所 Seasar.Dao.Interceptors.S2DaoInterceptor.Invoke
(IMethodInvocation invocation)
場所 Seasar.Framework.Aop.Proxy.AopProxy.Invoke(IMessage msg)
場所 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke
(MessageData& msgData, Int32 type)
場所 NtkProjectCore.dao.INttb64CarDao.Insert(Nttb64CarEntity vo)
E:\NT2004_01\Projects\NtkTestProject\S2UnitTest\HogeTest.vb(65,0):
場所 NtkTestProject.S2UnitTest.HogeTest.Hoge()
Inner Exception
System.InvalidCastException
Message: 型 'System.Int32' のオブジェクトを
型 'Nullables.INullableType' にキャストできません。
Source: Seasar
StackTrace:
場所 Seasar.Extension.ADO.Types.NHibernateNullableBaseType.
GetBindValue(Object value)
場所 Seasar.Extension.ADO.Types.BaseValueType.BindValue
(IDbCommand cmd, String columnName, Object value,
DbType dbType, ParameterDirection direction)
場所 Seasar.Extension.ADO.Types.NHibernateNullableInt32Type.
BindValue(IDbCommand cmd, String columnName, Object value)
場所 Seasar.Extension.ADO.Impl.BasicHandler.BindArgs
(IDbCommand command, Object[] args, Type[] argTypes)
同様に、NullableDatetimeを指定したカラムもエラーとなってしまいます。
VS2005 の場合、Nullable を使用しないで、Nullable(Of Int32) を使用した
方が良いのでしょうか?ご教授お願い申し上げます。
seasar-dotnet メーリングリストの案内