域对象是否与JPA实体相同?

Kin*_*ome 6 jpa domain-object

域对象是否与JPA实体相同?如果我有一个值对象(例如美元账单),我怎么能(甚至应该)将它作为参考对象存储在数据存储区中?

域对象在某些情况下是实体的细微之处是什么?在其他情况下是值对象?谁能指导我写一篇好文章?

Wil*_*ler 6

"域对象"是一个更具概念性的术语; "JPA实体"是指用于实现域对象的特定技术.

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

很多人以贫血的方式实现域对象 - 主要是具有ORM映射的属性,但域对象本身没有真正的逻辑.他们将逻辑放在域服务中.

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

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

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