NHibernate的一对多的外键是NULL [英] NHibernate one-to-many foreign key is NULL
问题描述
我有两个类。 UserTicket和UserData。一个UsertTicket有一些UserData和一个UserData属于一个UserTicket:
pre $ c $ public class UserData {
public virtual int Id {得到;组; }
public virtual String PDF_Path {get;组; }
$ b $ public class UserTicket
{
public virtual int Ticketnr {get;组; }
公共虚拟IList< UserData> UserData {get;组; }
}
这里的mappig xml:
< class name =UserTickettable =UserTicket>
< id name =Ticketnr>
< generator class =identity/>
< / id>
< bag name =UserDatainverse =truecascade =all-delete-orphanlazy =false>
< key column =FK_Ticketnrnot-null =false/>
<一对多等级=UserData/>
< / bag>
< / class>
< class name =UserDatatable =UserData>
< id name =Id>
< generator class =identity/>
< / id>
< property name =PDF_Path/>
< / class>
当我运行它时,它可以工作,但UserData的DB表中的列FK_Ticketnr始终= NULL。
有人告诉我,我必须做一个从我的孩子(UserData)到父级的反向链接。但我不知道如何去做。如何让Hibernate将UserTicket的主键(Ticketnr)的值写入FK_Ticketnr?
在此先感谢
删除你的包里的inverse =true。这是告诉NHibernate的关系是从UserData映射管理。由于您没有后退参考,因此永远不会持续。另一种选择是在UserData上放置一个父引用,但是如果你不需要,我不会推荐它。
I have a problem with NHibernate. What i am trying to to is very simple: I have two Classes. UserTicket and UserData. A UsertTicket has some UserData and a UserData belongs to one UserTicket:
public class UserData{
public virtual int Id { get; set; }
public virtual String PDF_Path { get; set; }
}
public class UserTicket
{
public virtual int Ticketnr { get; set; }
public virtual IList<UserData> UserData { get; set; }
}
And here the mappig xml:
<class name="UserTicket" table="UserTicket">
<id name="Ticketnr">
<generator class="identity"/>
</id>
<bag name="UserData" inverse="true" cascade="all-delete-orphan" lazy="false">
<key column="FK_Ticketnr" not-null="false"/>
<one-to-many class="UserData" />
</bag>
</class>
<class name="UserData" table="UserData">
<id name="Id">
<generator class="identity"/>
</id>
<property name="PDF_Path" />
</class>
When i run it, it works, but the column FK_Ticketnr in the DB-Table of UserData is always = NULL. Someone told me i have to make a back link from my Child (UserData) to the Parent-Class. But i can not figure out how to do so. How do i get Hibernate to write the value of the Primary-Key (Ticketnr) of UserTicket into FK_Ticketnr?
Thanks in advance
Remove inverse="true" on your bag. That is telling NHibernate that the relationship is managed from the UserData mapping. Since you don't have a back reference, it is never persisted. The other option is to put a parent reference on UserData, but I wouldn't recommend it if you don't need it.
这篇关于NHibernate的一对多的外键是NULL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!