This is the stack trace I am getting, hope this helps at NHibernate.Engine.Nullability.CheckNullability(Object[] values, IEntityPersister persister, Boolean isUpdate) in c:\Users\rob\Documents \Visual Studio 2008\Projects\NHibernate3.0.0\src\NHibernate\Engine \Nullability.cs:line 59 at NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) in c:\Users\rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src\NHibernate\Event\Default \AbstractSaveEventListener.cs:line 251 at NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object entity, Object id, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) in c:\Users\rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src\NHibernate\Event\Default \AbstractSaveEventListener.cs:line 187 at NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) in c:\Users\rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src\NHibernate\Event\Default \AbstractSaveEventListener.cs:line 119 at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Event\Default \DefaultSaveOrUpdateEventListener.cs:line 162 at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Event\Default \DefaultSaveOrUpdateEventListener.cs:line 148 at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent event) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Event\Default \DefaultSaveOrUpdateEventListener.cs:line 76 at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Event\Default \DefaultSaveOrUpdateEventListener.cs:line 53 at NHibernate.Impl.SessionImpl.FireSaveOrUpdate(SaveOrUpdateEvent event) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Impl\SessionImpl.cs:line 2615 at NHibernate.Impl.SessionImpl.SaveOrUpdate(String entityName, Object obj) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Impl\SessionImpl.cs:line 547 at NHibernate.Engine.CascadingAction.SaveUpdateCascadingAction.Cascade(IEventSource session, Object child, String entityName, Object anything, Boolean isCascadeDeleteEnabled) in c:\Users\rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src\NHibernate\Engine \CascadingAction.cs:line 248 at NHibernate.Engine.Cascade.CascadeToOne(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Engine\Cascade.cs:line 213 at NHibernate.Engine.Cascade.CascadeAssociation(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) in c:\Users\rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src\NHibernate\Engine\Cascade.cs:line 181 at NHibernate.Engine.Cascade.CascadeProperty(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) in c:\Users\rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src\NHibernate\Engine\Cascade.cs:line 148 at NHibernate.Engine.Cascade.CascadeOn(IEntityPersister persister, Object parent, Object anything) in c:\Users\rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src\NHibernate\Engine \Cascade.cs:line 126 at NHibernate.Event.Default.AbstractSaveEventListener.CascadeBeforeSave(IEventSource source, IEntityPersister persister, Object entity, Object anything) in c:\Users\rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src \NHibernate\Event\Default\AbstractSaveEventListener.cs:line 351 at NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) in c:\Users\rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src\NHibernate\Event\Default \AbstractSaveEventListener.cs:line 224 at NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object entity, Object id, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) in c:\Users\rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src\NHibernate\Event\Default \AbstractSaveEventListener.cs:line 187 at NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) in c:\Users\rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src\NHibernate\Event\Default \AbstractSaveEventListener.cs:line 119 at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Event\Default \DefaultSaveOrUpdateEventListener.cs:line 162 at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Event\Default \DefaultSaveOrUpdateEventListener.cs:line 148 at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent event) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Event\Default \DefaultSaveOrUpdateEventListener.cs:line 76 at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Event\Default \DefaultSaveOrUpdateEventListener.cs:line 53 at NHibernate.Impl.SessionImpl.FireSaveOrUpdate(SaveOrUpdateEvent event) in c:\Users\rob\Documents\Visual Studio 2008\Projects \NHibernate3.0.0\src\NHibernate\Impl\SessionImpl.cs:line 2615 at NHibernate.Impl.SessionImpl.SaveOrUpdate(Object obj) in c:\Users \rob\Documents\Visual Studio 2008\Projects\NHibernate3.0.0\src \NHibernate\Impl\SessionImpl.cs:line 539 at Blog.Dal.DAOs.GenericDao`1.SaveOrUpdate(T entity) in C:\Visual Studio 2008\Projects\Blog\Blog.Dal\DAOs\GenericDao.cs:line 43
and the error message- not-null property references a null or transient valueBlog.Core.Model.Entities.Account.User Thanks again On Dec 14, 3:57 pm, dazed3confused <[email protected]> wrote: > Hi People > > I have upgraded to NH3.0.0GA, and unfortunately I am experiencing > some problems with my mappings, specifically the join property. Im not > sure if this has changed in the new version since 2.1.2, or if its > broken. > The error I'm getting is- > > NHibernateSessionFactory.Instance.GetSession().SaveOrUpdate(entity); > A first chance exception of type 'NHibernate.PropertyValueException' > occurred in NHibernate.dll > 'NHibernateSessionFactory.Instance.GetSession().SaveOrUpdate(entity)' > threw an exception of type 'NHibernate.PropertyValueException' > base {NHibernate.HibernateException}: {"not-null property > references a null or transient > valueBlog.Core.Model.Entities.Account.User"} > EntityName: "Blog.Core.Model.Entities.Account" > entityName: "Blog.Core.Model.Entities.Account" > Message: "not-null property references a null or transient > valueBlog.Core.Model.Entities.Account.User" > PropertyName: "User" > propertyName: "User" > > I think this might be happening because it is trying to save the > account before it saves the user (which should be saved to db before > account). > > My classes and mappings that are producing this error are > classes- > > public class User : BaseEntity > { > > public virtual string Forename { get; set; } > > public virtual string Surname { get; set; } > > public virtual Account Account { get; protected set; } > > public virtual void SetAccount(Account account) > { > this.Account = account; > } > > } > > public class Account : BaseEntity > { > public virtual string Username { get; set; } > > public virtual string Password { get; set; } > > public virtual UserSecurityLevel SecurityLevel { get; set; } > > public virtual User User { get; protected set; } > > public virtual void SetUser(User user) > { > this.User = user; > } > > } > > mappings- > > <class name="User" table="Users"> > > <id name="Id" type="Int32"> > <generator class="native" /> > </id> > > <version name="Version" type="Int32" unsaved-value="-1"/> > <property name='Active' /> > > <property name="Forename" type="String" column="Forename"/> > > <property name="Surname" type="String" column="Surname"/> > > <!-- Relationship with Account--> > <join table="UsersAccounts" optional="true"> > <key> > <column name="UserId" unique="true" /> > </key> > <many-to-one name="Account" column="AccountId" not- > null="true" unique="true" > cascade="all-delete-orphan" /> > </join> > > </class> > > <class name="Account" table="Accounts"> > > <id name="Id" type="Int32"> > <generator class="native" /> > </id> > > <version name="Version" type="Int32" unsaved-value="-1"/> > <property name='Active' /> > > <property name="Username" type="String" column="Username"/> > > <property name="Password" type="String" column="Password"/> > > <property name="SecurityLevel" column="SecurityLevel"/> > > <!-- Relationship with User --> > <join table="UsersAccounts" inverse="true"> > <key> > <column name="AccountId" unique="true" /> > </key> > <many-to-one name="User" column="UserId" not-null="true" > unique="true" /> > </join> > > </class> > > Please let me know if I should be providing more details? > > Thanks -- 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.
