2012-01-03 44 views
1

我試圖做一個XML Hibernate映射的一對一關係的表怎麼做一對一的Hibernate映射,使用非主鍵作爲參考

用戶(用戶ID,姓名,StatusId) 狀態(StatusId,StatusName)

我想這是我在論壇上找到

在User.hbm.xml

<many-to-one class="Status" name="statusid" property-ref="statusid"> 
    <column name="statusname" /> 
    </many-to-one> 

和becoz這個我得到這個呃ROR

嚴重:初始會話工廠創建failed.java.lang.NullPointerException 警告:StandardWrapperValve [默認]:PWC1406:Servlet.service()爲servlet的缺省拋出異常 java.lang.ExceptionInInitializerError

當我使用PK作爲參考,我沒有收到此錯誤..

任何人都可以請解釋什麼屬性的意思,爲什麼我得到這個錯誤? PS:我正處於學習階段,請幫助>。 <

+0

您可以發佈錯誤的完整堆棧跟蹤嗎? – 2012-01-04 06:49:26

+1

標題中說'一對一'。我想你的意思是多對一?除非你想讓每個用戶有不同的地位? – greyfairer 2012-01-06 16:02:32

回答

1

如果你沒有特別的東西,下面的貼圖應該可以工作。儘管如此,完整堆棧跟蹤總是有幫助的。

<many-to-one class="Status" name="statusid" column="StatusId" /> 
1

哦,你真的想加入User.statusid = Status.statusname嗎?這意味着statusname是Status的備用鍵。

在你的property-ref中,你需要設置你引用的Status對象的屬性。 請參閱Associations on Alternate Keys

<many-to-one class="Status" name="statusid" property-ref="statusname"/> 
相關問題