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.