2014-12-02 58 views
0

假設我有一個專業領域的人物對象,它只是一個字符串列表。什麼是使用Spring和hibernate的規範方式,將此列表限制爲由用戶或管理員定義的專業的一個子集?也就是說,運行時的全局預定義職業列表是{Accountant,Developer},用戶將'Plumber'添加到列表中。現在,如果創建了一個新人,我想限制該人可能擁有的列表中的3個職業。將成員值限制爲集合子集的正確方法

最初,我實現了一個枚舉,但這看起來像一個糟糕的設計,因爲它是在編譯時生成的,並且不能在運行時添加(我認爲?)。合適的方式是用專業來定義一個專欄,並且在每個要求成爲一個人的請求中,用一個成員來填充一個單獨的成員,這是一個專業列表?那麼域對象的人只會從單身人士那裏獲得職業(大概是在服務層?)。

回答

0

您可以使用一對多關係創建與Person相關的新實體專業。這種方式一直是Hibernate堅持的職業。專業實體並不需要太多。只是一個身份證和現在的名字。稍後,您可以根據需要添加更多屬性。

+0

好吧,好奇,如果這是正確的方式。我想我無法克服這一事實,即java端實現與休眠設計相結合。我一直在設想一個獨立的Java應用程序,它只支持數據庫。這裏不是這種情況,因爲hibernate限制了沒有hibernate(數據庫)的Profession的值,所以無法完成。那麼,Person的職業成員是否僅僅是名單並通過服務層填充? – user3442536 2014-12-02 03:57:08

+0

可能。您可以在專業人員不瞭解該人員的情況下建立單向關係。但它取決於你。 – 2014-12-02 10:54:18