NHibernate的一对多的外键是NULL [英] NHibernate one-to-many foreign key is NULL

查看:221
本文介绍了NHibernate的一对多的外键是NULL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个NHibernate的问题。我想要的是非常简单的:
我有两个类。 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆