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.

Reply via email to