1. Does it do this same thing if you do it via Criteria? >> Perhaps the CreateQuery method of querying is broken? 2. Are you using trunk or an old version? 3. Unless you like extra typing you don't need to define Column="xx" if it is identical to the Name field.
On Fri, Mar 27, 2009 at 2:22 PM, joshlrogers <[email protected]> wrote: > > I have actually changed it to not have a type and I am still receiving > the same result.... > > <?xml version="1.0" encoding="utf-8" ?> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > assembly="TEAMS_ORM" schema="dbo"> > <class name ="TEAMS_ORM.CWTRatingGroup,TEAMS_ORM" > table="tblCWTRatingGroups"> > > <id name="Id" column="Id" type="Int32" unsaved-value="-1"> > <generator class="native" /> > </id> > > <property name="Name" column="Name" length="50" > type="String" not- > null="true" unique="true" insert="true" update="true" /> > <property name="UserAdded" column="UserAdded" type="Int32" > not- > null="true" insert="true" update="false"/> > <property name="DateAdded" column="DateAdded" > type="DateTime" not- > null="true" insert="true" update="false" /> > <property name="UserEdited" column="UserEdited" > not-null="false" > insert="false" update="true" /> > <property name="DateEdited" column="DateEdited" > not-null="false" > insert="false" update="true" /> > > <bag name="RatingRules" > table="tblCWTRatingGroups_RatingRules" > cascade="all"> > <key column="GroupId" /> > <many-to-many column = "RuleId" > class="TEAMS_ORM.CWTRatingRule, > TEAMS_ORM" /> > </bag> > > </class> > > </hibernate-mapping> > > This still gives me a 1 for UserEdited and the current date for > DateEdited. However if I do a SELECT query from the DB those values > are null and if I do a dataset and do the query myself they are null. > The issue is definitely a NHibernate issue I think it is safe to say > at this point. > > Thanks, > Josh > > On Mar 27, 4:15 pm, epitka <[email protected]> wrote: > > I know, that's why I said I am not sure, either doc is not correct or > > joshlrogers is doing something wrong. > > > > On Mar 27, 4:12 pm, Will Shaver <[email protected]> wrote: > > > > > Well before you change it someone should do a test. I never actually > put > > > types in my mapping unless I'm implementing IUserType, so I'm not sure > on > > > this one. > > > > > On Fri, Mar 27, 2009 at 2:12 PM, epitka <[email protected]> > wrote: > > > > > > Then this needs to be changed in the documentation: > > > > > > "NHibernate supports .NET 2.0 Nullable types. These types are mostly > > > > treated the same as plain non-Nullable types internally. For example, > > > > a property of type Nullable<Int32> can be mapped using type="Int32" > or > > > > type="System.Int32". > > > > > > If you do not specify a type, NHibernate will use reflection upon the > > > > named property to take a guess at the correct NHibernate type. > > > > NHibernate will try to interpret the name of the return class of the > > > > property getter using rules 2, 3, 4 in that order. However, this is > > > > not always enough. In certain cases you will still need the type > > > > attribute. (For example, to distinguish between > > > > NHibernateUtil.DateTime and NHibernateUtil.Timestamp, or to specify a > > > > custom type.)" > > > > > > On Mar 27, 4:03 pm, Will Shaver <[email protected]> wrote: > > > > > Ack, of course epitka is right. Remember that nullable types are > actually > > > > > implemented with the backtick operator. > > > > > Remember that this: > > > > > ?int > > > > > is actually this: > > > > > System.Nullable``1[[System.Int32]] > > > > > > > or something like that... > > > > > > > -Will > > > > > > > On Fri, Mar 27, 2009 at 2:00 PM, epitka <[email protected]> > wrote: > > > > > > > > I am not sure about this, but try taking "type" attribute out of > your > > > > > > mapping and let NH figure out what the type is. > > > > > > > > On Mar 27, 1:43 pm, joshlrogers <[email protected]> wrote: > > > > > > > Yes this is definite. I run a query through a plain old data > set and > > > > > > > they return null. I have verified my database design as > well....just > > > > > > > for clarification sake: > > > > > > > > > CREATE TABLE [dbo].[tblCWTRatingGroups]( > > > > > > > [Id] [int] IDENTITY(0,1) NOT NULL, > > > > > > > [Name] [nvarchar](50) NOT NULL, > > > > > > > [UserAdded] [int] NOT NULL, > > > > > > > [DateAdded] [datetime] NOT NULL, > > > > > > > [UserEdited] [int] NULL, > > > > > > > [DateEdited] [datetime] NULL, > > > > > > > CONSTRAINT [PK_tblCWTRatingGroups] PRIMARY KEY CLUSTERED > > > > > > > ( > > > > > > > [Id] ASC > > > > > > > )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, > > > > IGNORE_DUP_KEY > > > > > > > = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, > FILLFACTOR = > > > > 20) > > > > > > > ON [PRIMARY] > > > > > > > ) ON [PRIMARY] > > > > > > > > > That was taken straight from SQL Server Management Studio.... > > > > > > > > > Thank you, > > > > > > > Josh > > > > > > > > > On Mar 27, 1:29 pm, James Gregory <[email protected]> > wrote: > > > > > > > > > > Just to confirm, your columns in your database definitely are > > > > nullable? > > > > > > > > > > On Fri, Mar 27, 2009 at 5:59 PM, joshlrogers < > > > > [email protected]> > > > > > > wrote: > > > > > > > > > > > Hello, > > > > > > > > > > > I am having an issue with nullable fields. I have > specified the > > > > > > > > > valuetypes as being nullable, respectively DateTime? and > int?. > > > > The > > > > > > > > > constructor of the class sets these values to null as well. > My > > > > > > > > > mapping is as such: > > > > > > > > > > > <?xml version="1.0" encoding="utf-8" ?> > > > > > > > > > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > > > > > > > > > assembly="TEAMS_ORM"> > > > > > > > > > <class name ="TEAMS_ORM.CWTRatingGroup,TEAMS_ORM" > > > > > > > > > table="tblCWTRatingGroups"> > > > > > > > > > > > <id name="Id" column="Id" type="Int32" > > > > > > unsaved-value="-1"> > > > > > > > > > <generator class="native" /> > > > > > > > > > </id> > > > > > > > > > > > <property name="Name" column="Name" > length="50" > > > > > > > > > type="String" not- > > > > > > > > > null="true" unique="true" /> > > > > > > > > > <property name="UserAdded" > column="UserAdded" > > > > > > type="Int32" > > > > > > > > > not- > > > > > > > > > null="true" /> > > > > > > > > > <property name="DateAdded" > column="DateAdded" > > > > > > > > > type="DateTime" not- > > > > > > > > > null="true" /> > > > > > > > > > <property name="UserEdited" > column="UserEdited" > > > > > > type="Int32" > > > > > > > > > not- > > > > > > > > > null="false" /> > > > > > > > > > <property name="DateEdited" > column="DateEdited" > > > > > > > > > type="DateTime" not- > > > > > > > > > null="false" /> > > > > > > > > > > > </class> > > > > > > > > > > > </hibernate-mapping> > > > > > > > > > > > UserEdited and DateEdited are the required fields. When I > make > > > > > > > > > updates or saves to the db it will successfully pass nulls. > > > > However > > > > > > > > > when it retrieves from the DB and the fields are NULL it > > > > populates > > > > > > the > > > > > > > > > fields with arbitrary values however I need them to be > null. > > > > This is > > > > > > > > > my retrieve query: > > > > > > > > > > > return (List<CWTRatingGroup>)session.CreateQuery("select > from > > > > > > > > > TEAMS_ORM.CWTRatingGroup").List<CWTRatingGroup>(); > > > > > > > > > > > How do I achieve this? > > > > > > > > > > > Thank you in advance, > > > > > > > > > Josh > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
