0

我是 ORM 和休眠的新手。我的应用程序是复杂的设计模式。与建设者,流畅的界面。并且这些对象在创建 illiegel 对象时也会引发异常。我使用 orm 映射来访问数据库。我将这些 ORM 实体转换为我的复杂对象,反之亦然。是好主意还是任何其他替代方案。

4

2 回答 2

2

作为一般规则,您应该在真正需要时创建业务对象(在您的情况下它们已经存在)。因此,如果您的应用程序需要那些复杂的对象,那很好(但请记住,它们很难维护,因为当您对数据库和 Hibernate 对象进行更改时,您将不得不更改一堆对象)。如果您可以摆脱那些复杂的对象,您可以在整个应用程序中使用 Hibernate 的分离实体作为简单的 DTO,并且您不会遇到维护两组对象的困难。另一方面,使用业务对象可以使您的 Web 层(或其他层)独立于 Hibernate 及其实体,因此如果您将来决定不使用 Hibernate,那么您的生活会更轻松。根据我的经验,

于 2013-08-29T06:35:54.247 回答
1

您是否有一些要求表明您需要两种实体:丰富/复杂的实体和基于 ORM 的实体?

我将 ORM 与域驱动设计一起使用,效果很好。我们将丰富的实体(和值对象)与服务分离,并且这些实体从聚合向下持久化。

当您想使用休眠映射时,您当然必须稍微更改这些实体,但我没有发现任何会破坏我们的 DDD 模型的东西。例如,无参数构造函数可以是私有的等。

由于我们使用 fluent/xml 映射,模型与持久层完全分离,参见术语持久化无知

于 2013-08-29T06:29:46.693 回答