2013-08-29 37 views
0

我是ORM和休眠的新手。 我的應用程序是複雜的設計模式。與建設者,流暢的界面。 並且這些對象在創建illieagel對象時也會引發異常。我使用orm映射來訪問數據庫。我將這些ORM實體轉換爲我的複雜對象,反之亦然。這是個好主意還是其他備用方案?將休眠orm實體轉換爲複雜對象,反之亦然

+0

問題是猜測異常和代碼.... –

回答

1

你是否有一些要求說你需要兩種實體:那些豐富/複雜和那些基於ORM的實體?

我用ORM與domain driven design一起工作得很好。我們從服務中分離出rich實體(和值對象),並且這些實體從聚合向下持久化。

當你想使用hibernate映射時,你當然必須稍微改變這些實體,但是我沒有找到任何會打破我們的DDD模型的東西。例如。參數構造函數可以是私有的等

正如我們所用流利/ XML映射,模型完全從持久層分開,看到長期persistence ignorance

2

作爲一般規則,你應該創建業務對象(在你的情況下,他們存在已經),當你真正需要他們。所以,如果您的應用程序需要這些複雜的對象,那很好(但請記住,它們很難維護,因爲當您對數據庫和Hibernate對象進行更改時,必須更改一堆對象)。 如果你可以擺脫那些複雜的對象,你可以在你的應用程序中使用Hibernate的分離實體作爲簡單的DTO,並且你不會難以維護兩組對象。另一方面,使用業務對象可以使您的Web層(或其他層)獨立於Hibernate及其實體,因此,如果將來您決定不使用Hibernate,您的生活將變得更加輕鬆。根據我的經驗,如果最近不是你​​的情況,並且你正在考慮將Hibernate作爲一個長期解決方案,那麼使用Hibernate的分離實體是一個更簡單的解決方案。

相關問題