|
From: NHibernate J. <mik...@us...> - 2006-11-02 10:19:29
|
Incrementing a nullable <Version> field fails
---------------------------------------------
Key: NH-788
URL: http://jira.nhibernate.org/browse/NH-788
Project: NHibernate
Type: Bug
Components: Core
Versions: 1.2.0.Beta1
Reporter: Jens Dein
Priority: Minor
Attachments: Serialno.hbm.xml
I have defined my version tag like this :
<version
name="Hbversion"
column="HBVersion"
type="System.Int32"
unsaved-value="null"
/>
and in my class like this :
private System.Int32? _hbversion;
and when trying to persist the code I get an error in the following code :
public class Int32Type : ValueTypeType, IDiscriminatorType, IVersionType
public virtual object Next( object current )
{
return ( ( int )current ) + 1;
}
besause current is typecasted to int without checking for null. Code might be changed to the following :
public virtual object Next( object current )
{
if (current == null)
return Seed;
else
return ((int)current) + 1;
}
I hope I havent misunderstood totally how to use these nullables, but I believe I found advise on the net stating that it should be possible to do it this way in the 1.2 version.
Using .NET 2.0 of course and SQL Server 2005.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.nhibernate.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
|
|
From: NHibernate J. <mik...@us...> - 2006-11-06 10:42:30
|
[ http://jira.nhibernate.org/browse/NH-788?page=comments#action_14302 ] Sergey Koshcheyev commented on NH-788: -------------------------------------- The mapping you attached differs from what you describe. Also, please attach a simple failing test case. > Incrementing a nullable <Version> field fails > --------------------------------------------- > > Key: NH-788 > URL: http://jira.nhibernate.org/browse/NH-788 > Project: NHibernate > Type: Bug > Components: Core > Versions: 1.2.0.Beta1 > Reporter: Jens Dein > Priority: Minor > Attachments: Serialno.hbm.xml > > I have defined my version tag like this : > <version > name="Hbversion" > column="HBVersion" > type="System.Int32" > unsaved-value="null" > /> > and in my class like this : > private System.Int32? _hbversion; > and when trying to persist the code I get an error in the following code : > public class Int32Type : ValueTypeType, IDiscriminatorType, IVersionType > public virtual object Next( object current ) > { > return ( ( int )current ) + 1; > } > besause current is typecasted to int without checking for null. Code might be changed to the following : > public virtual object Next( object current ) > { > if (current == null) > return Seed; > else > return ((int)current) + 1; > } > I hope I havent misunderstood totally how to use these nullables, but I believe I found advise on the net stating that it should be possible to do it this way in the 1.2 version. > Using .NET 2.0 of course and SQL Server 2005. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.nhibernate.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |
|
From: NHibernate J. <mik...@us...> - 2006-11-13 19:21:26
|
[ http://jira.nhibernate.org/browse/NH-788?page=all ] Sergey Koshcheyev closed NH-788: -------------------------------- Resolution: Incomplete > Incrementing a nullable <Version> field fails > --------------------------------------------- > > Key: NH-788 > URL: http://jira.nhibernate.org/browse/NH-788 > Project: NHibernate > Type: Bug > Components: Core > Versions: 1.2.0.Beta1 > Reporter: Jens Dein > Priority: Minor > Attachments: Serialno.hbm.xml > > I have defined my version tag like this : > <version > name="Hbversion" > column="HBVersion" > type="System.Int32" > unsaved-value="null" > /> > and in my class like this : > private System.Int32? _hbversion; > and when trying to persist the code I get an error in the following code : > public class Int32Type : ValueTypeType, IDiscriminatorType, IVersionType > public virtual object Next( object current ) > { > return ( ( int )current ) + 1; > } > besause current is typecasted to int without checking for null. Code might be changed to the following : > public virtual object Next( object current ) > { > if (current == null) > return Seed; > else > return ((int)current) + 1; > } > I hope I havent misunderstood totally how to use these nullables, but I believe I found advise on the net stating that it should be possible to do it this way in the 1.2 version. > Using .NET 2.0 of course and SQL Server 2005. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.nhibernate.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |
|
From: NHibernate J. <mik...@us...> - 2006-11-14 09:49:26
|
[ http://jira.nhibernate.org/browse/NH-788?page=comments#action_14391 ] Jens Dein commented on NH-788: ------------------------------ Sorry about that! I was actually just trying to generate a test case but not w I can't make it fail. I'm a bit new at this so I'm not quite sure what it is I have done - but it seems that the problem is gone. > Incrementing a nullable <Version> field fails > --------------------------------------------- > > Key: NH-788 > URL: http://jira.nhibernate.org/browse/NH-788 > Project: NHibernate > Type: Bug > Components: Core > Versions: 1.2.0.Beta1 > Reporter: Jens Dein > Priority: Minor > Attachments: Serialno.hbm.xml > > I have defined my version tag like this : > <version > name="Hbversion" > column="HBVersion" > type="System.Int32" > unsaved-value="null" > /> > and in my class like this : > private System.Int32? _hbversion; > and when trying to persist the code I get an error in the following code : > public class Int32Type : ValueTypeType, IDiscriminatorType, IVersionType > public virtual object Next( object current ) > { > return ( ( int )current ) + 1; > } > besause current is typecasted to int without checking for null. Code might be changed to the following : > public virtual object Next( object current ) > { > if (current == null) > return Seed; > else > return ((int)current) + 1; > } > I hope I havent misunderstood totally how to use these nullables, but I believe I found advise on the net stating that it should be possible to do it this way in the 1.2 version. > Using .NET 2.0 of course and SQL Server 2005. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.nhibernate.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |