我是ORM和休眠的新手。 我的應用程序是複雜的設計模式。與建設者,流暢的界面。 並且這些對象在創建illieagel對象時也會引發異常。我使用orm映射來訪問數據庫。我將這些ORM實體轉換爲我的複雜對象,反之亦然。這是個好主意還是其他備用方案?將休眠orm實體轉換爲複雜對象,反之亦然
0
A
回答
1
你是否有一些要求說你需要兩種實體:那些豐富/複雜和那些基於ORM的實體?
我用ORM與domain driven design一起工作得很好。我們從服務中分離出rich實體(和值對象),並且這些實體從聚合向下持久化。
當你想使用hibernate映射時,你當然必須稍微改變這些實體,但是我沒有找到任何會打破我們的DDD模型的東西。例如。參數構造函數可以是私有的等
正如我們所用流利/ XML映射,模型完全從持久層分開,看到長期persistence ignorance
2
作爲一般規則,你應該創建業務對象(在你的情況下,他們存在已經),當你真正需要他們。所以,如果您的應用程序需要這些複雜的對象,那很好(但請記住,它們很難維護,因爲當您對數據庫和Hibernate對象進行更改時,必須更改一堆對象)。 如果你可以擺脫那些複雜的對象,你可以在你的應用程序中使用Hibernate的分離實體作爲簡單的DTO,並且你不會難以維護兩組對象。另一方面,使用業務對象可以使您的Web層(或其他層)獨立於Hibernate及其實體,因此,如果將來您決定不使用Hibernate,您的生活將變得更加輕鬆。根據我的經驗,如果最近不是你的情況,並且你正在考慮將Hibernate作爲一個長期解決方案,那麼使用Hibernate的分離實體是一個更簡單的解決方案。
相關問題
- 1. DTO轉換爲實體,反之亦然
- 2. 將NSDictionary對象轉換爲NSData對象,反之亦然
- 3. 將實體對象轉換爲POJO,反之亦然的最佳方式?
- 4. 將ansi轉換爲utf8,反之亦然
- 5. 將float2轉換爲double2,反之亦然
- 6. 將lonlat轉換爲xyz,反之亦然
- 7. 將NSString轉換爲NSData,反之亦然
- 8. 將HTML轉換爲Xliff,反之亦然
- 9. 將JavaUtilDate轉換爲NSDate,反之亦然?
- 10. 將RSAPrivateKey轉換爲PrivateKey,反之亦然
- 11. 將對象轉換爲二進制代碼,反之亦然
- 12. 將對象(包含lambda)轉換爲JSON,反之亦然
- 13. 將Java對象轉換爲Json,反之亦然?
- 14. 將對象轉換爲AS3中的XML元素(反之亦然)
- 15. Android將對象轉換爲XML,反之亦然
- 16. .NET - 將/映射列表轉換爲對象,反之亦然
- 17. 將Java對象轉換爲Xml,反之亦然
- 18. 將媒體從720p轉換爲1080p,反之亦然
- 19. 將列轉換成行,反之亦然
- 20. 如何在Groovy中將字節[]轉換爲對象,反之亦然
- 21. 休眠實體中的複雜關係
- 22. 爲什麼要將JSON文件轉換爲XML,反之亦然?
- 23. DSP - 將採樣信號從實際樣本轉換爲複雜樣本,反之亦然
- 24. 轉換位圖的ByteArray反之亦然
- 25. 轉換浮到ndarray或反之亦然
- 26. 轉換Unicode字符串,反之亦然
- 27. 行到列,反之亦然轉換
- 28. 變換JSON對象爲數字字符串,反之亦然
- 29. 序列化複雜對象ORM實體處理關係實體
- 30. 將int轉換爲void *或反之亦然?
問題是猜測異常和代碼.... –