域对象与JPA实体相同吗?如果我有一个价值对象(例如一美元的钞票),我如何(甚至应该)将其作为参考对象存储在数据存储中?

领域对象在某些情况下是实体而在其他情况下是值对象的微妙之处是什么?有人可以指导我写一篇好论文吗?

最佳答案

“域对象”是一个更具概念性的术语; “ JPA实体”是指对实现域对象有用的特定技术。

通常,域对象与您域中的名词(订单,发票,客户等)相对应。通常,我们认为这些对象更接近数据库,而不是纯数据传输对象。因此,例如,您可能会在用于实现域对象的类上看到ORM批注。

很多人以贫乏的方式实现域对象-大多数是带有ORM映射的属性,但是域对象本身没有真正的逻辑。他们将逻辑放在域服务中。

另一方面,领域驱动设计的支持者将逻辑放在领域对象上。

无论哪种方式,这些都是系统中的域对象。

JPA实体是您用@ Entity,@ Column,@ ManyToOne等进行注释的类。这是一种实现域对象的方法。如上所述,您可能决定将域逻辑放在对象本身上。

10-06 10:22
查看更多