2010-10-08 185 views
2

我正致力於將遺留系統轉換爲使用hibernate(版本3.3.x)而不是使用手工製作的SQL。我遇到了一些問題,將我的datamodel映射到複合鍵。我已經創建了一個我認爲可行的解決方案,但我並不太喜歡它。因此,我想看看下圖可以/應該如何映射,看看我是否在「正確」軌道上。使用複合鍵映射實體

alt text

在圖StuffTypes是一個相當靜態表不發生變化(無插入或更新)。 Parent是目前唯一一個與其關聯的DAO類的表(其他應在父實例存在時保留)。 Stuff有一個StuffType和一些與之相關的SubStuff。最後,SubStuff只是Stuff和StuffTypes之間的多對多映射表。

什麼是使用註釋將這些實體映射到Java對象的最佳方式?

+1

你是在SubStuff中存儲特殊的東西還是在SubStuff中不存在的東西中的其他東西。如果不是一個非常清晰/簡單的設計將是在Stuff上有一個遞歸關係。然後,東西將包含 - parentId,stuffTypeId,parentStuffId並放置SubStuff表格。 – 2010-10-08 06:51:43

回答

0

將主鍵stuff_id添加到Stuff表中,而將另一個主鍵substuff_id添加到SubStuff並不那麼複雜。當然,組合鍵是可能的。如果看到的解決方案已經引入了@Embeddable類來對複合鍵進行建模。