-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: Using the Nullables assembly for Nullable types
PostPosted: Tue Sep 19, 2006 12:30 pm 
Newbie

Joined: Tue Sep 19, 2006 12:19 pm
Posts: 12
Location: Isle of Man
Hi all,

Please can someone advise how I can use the Nullable types defined in the Nullables.dll assembly?

Hibernate version:
1.0.1

Name and version of the database you are using:
SQL Server 2000

Many thanks.
I do intend to go to 1.0.2, but not yet as I have to get rid of the ActiveRecord stuff I am using first.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 20, 2006 4:59 am 
Newbie

Joined: Tue Sep 19, 2006 12:19 pm
Posts: 12
Location: Isle of Man
To further my question:

The problematic type is defined as:

Code:
        private NullableDateTime _pVer_Date;

        public virtual NullableDateTime PVer_Date
        {
            get { return _pVer_Date; }
            set { _pVer_Date = value; }
        }



My mapping:

Code:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
   <class name="Duke.DIMPLE2.NHibernate.Product, Duke.DIMPLE2" table="STO_Product">
      <id name="Prod_Code" column="Prod_Code" type="String" length="20">
         <generator class="assigned" />
      </id>
      <property name="Prod_Name" column="Prod_Name" type="String" length="40"/>
      <property name="Prod_DisplayName" type="String" length="20"/>
      <property name="Prod_Description" type="String" length="40"/>
      <property name="PInt_Code" type="String" length="20" />
      <property name="Prod_Length" type="String" length="20" />
      <property name="PGro_Code" type="String" length="20" />
      <property name="Prod_Certificate" type="String" length="20" />
      <property name="PSta_Code" type="String" length="20" />
      <property name="Prod_AudioCode" type="String" length="20" />
      <property name="Prod_Status" type="String" length="20" />
      <property name="Prod_PIntCode" type="String" length="20" />
      <property name="sku" type="String" length="20" />
      <property name="PCat_Code" type="String" length="20" />
      <property name="PVer_Date" type="Nullables.NullableDateTime, Nullables" />
      <property name="Prod_LengthUnit" type="String" length="20" />
      <property name="Proj_Code" type="string" length="20" />
   </class>
</hibernate-mapping>


I got the following exception:

Code:
NHibernate.ADOException: Could not cast the value in field PVer_Date0_ of type DateTime to the Type SerializableType.  Please check to make sure that the mapping is correct and that your DataProvider supports this Data Type. ---> System.InvalidCastException: Invalid attempt to GetBytes on column 'PVer_Date0_'.  The GetBytes function can only be used on columns of type Text, NText, or Image.
   at System.Data.SqlClient.SqlDataReader.GetBytes(Int32 i, Int64 dataIndex, Byte[] buffer, Int32 bufferIndex, Int32 length)
   at NHibernate.Driver.NHybridDataReader.GetBytes(Int32 i, Int64 fieldOffset, Byte[] buffer, Int32 bufferoffset, Int32 length)
   at NHibernate.Type.BinaryType.Get(IDataReader rs, Int32 index)
   at NHibernate.Type.SerializableType.Get(IDataReader rs, Int32 index)
   at NHibernate.Type.NullableType.NullSafeGet(IDataReader rs, String name)
   --- End of inner exception stack trace ---
   at NHibernate.Type.NullableType.NullSafeGet(IDataReader rs, String name)
   at NHibernate.Type.NullableType.NullSafeGet(IDataReader rs, String[] names, ISessionImplementor session, Object owner)
   at NHibernate.Type.AbstractType.Hydrate(IDataReader rs, String[] names, ISessionImplementor session, Object owner)
   at NHibernate.Loader.Loader.Hydrate(IDataReader rs, Object id, Object obj, ILoadable persister, ISessionImplementor session, String[][] suffixedPropertyColumns)
   at NHibernate.Loader.Loader.LoadFromResultSet(IDataReader rs, Int32 i, Object obj, Key key, String suffix, LockMode lockMode, ILoadable rootPersister, ISessionImplementor session)
   at NHibernate.Loader.Loader.InstanceNotYetLoaded(IDataReader dr, Int32 i, ILoadable persister, String suffix, Key key, LockMode lockMode, Key optionalObjectKey, Object optionalObject, IList hydratedObjects, ISessionImplementor session)
   at NHibernate.Loader.Loader.GetRow(IDataReader rs, ILoadable[] persisters, String[] suffixes, Key[] keys, Object optionalObject, Key optionalObjectKey, LockMode[] lockModes, IList hydratedObjects, ISessionImplementor session)
   at NHibernate.Loader.Loader.GetRowFromResultSet(IDataReader resultSet, ISessionImplementor session, QueryParameters queryParameters, IList hydratedObjects, Object optionalObject, Object optionalId, Key[] keys, Boolean returnProxies)
   at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Object optionalObject, Object optionalId, Object[] optionalCollectionKeys, Boolean returnProxies)
   at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Object optionalObject, Object optionalId, Object[] optionalCollectionKeys, Boolean returnProxies)
   at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet querySpaces, IType[] resultTypes)
   at NHibernate.Loader.CriteriaLoader.List(ISessionImplementor session)
   at NHibernate.Impl.SessionImpl.Find(CriteriaImpl criteria)
   at NHibernate.Impl.CriteriaImpl.List()
   at Duke.DIMPLE2.ASPNET.WebServices.API.ProductBroker.GetProducts(String code, String name) in c:\Inetpub\DIMPLE2\App_Code\ProductBroker.cs:line 45



I am using the Nullables.NullableDateTime type.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 20, 2006 5:49 am 
Contributor
Contributor

Joined: Wed May 11, 2005 4:59 pm
Posts: 1766
Location: Prague, Czech Republic
Use type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate".


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 20, 2006 7:50 am 
Newbie

Joined: Tue Sep 19, 2006 12:19 pm
Posts: 12
Location: Isle of Man
Thanks a lot for your help. Consider yourself rated.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.