如何使用非主键作为引用进行一对一hibernate映射
我正在尝试为表的一对一关系进行XML Hibernate映射 用户(用户ID、名称、状态ID) 状态(StatusId、StatusName) 我在论坛上找到了这个 在User.hbm.xml下如何使用非主键作为引用进行一对一hibernate映射,hibernate,nhibernate-mapping,Hibernate,Nhibernate Mapping,我正在尝试为表的一对一关系进行XML Hibernate映射 用户(用户ID、名称、状态ID) 状态(StatusId、StatusName) 我在论坛上找到了这个 在User.hbm.xml下 <many-to-one class="Status" name="statusid" property-ref="statusid"> <column name="statusname" /> </many-to-one> 因为这个,我犯了这个
<many-to-one class="Status" name="statusid" property-ref="statusid">
<column name="statusname" />
</many-to-one>
因为这个,我犯了这个错误
严重:初始SessionFactory创建失败。java.lang.NullPointerException
警告:StandardWrapperValve[默认值]:PWC1406:Servlet默认值的Servlet.service()引发异常
java.lang.ExceptionInInitializeError
当我使用PK作为参考时,我没有收到此错误
谁能解释一下这个属性是什么意思,为什么我会出现这个错误?
PS:我正处于学习阶段,请帮助>如果你没有什么特别的东西,下面的映射应该可以工作。然而,拥有完整的堆栈跟踪总是有帮助的
<many-to-one class="Status" name="statusid" column="StatusId" />
哦,你真的想加入
User.statusid=Status.statusname
?这意味着statusname是Status的备用键
在property ref中,需要设置所引用的Status对象的属性。
见:
您可以发布错误的完整堆栈跟踪吗?标题中写着“一对一”。我猜你是说多对一?除非您希望每个用户具有不同的状态?
<many-to-one class="Status" name="statusid" property-ref="statusname"/>