jpa - 域对象与 JPA 实体相同吗?

标签 jpa domain-object

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

域对象在某些情况下是实体,而在其他情况下是值对象,有哪些微妙之处?有人可以指导我一篇关于这方面的好论文吗?

最佳答案

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

通常,域对象对应于域中的名词(订单、发票、客户等)。通常我们将它们视为更接近数据库而不是纯粹的数据传输对象。例如,您可能会在用于实现域对象的类上看到 ORM 注释。

很多人以贫乏的方式实现领域对象——主要是使用 ORM 映射的属性,但领域对象本身没有真正的逻辑。他们将逻辑放入域服务中。

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

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

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

关于jpa - 域对象与 JPA 实体相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10394667/

相关文章:

jpa - 如何确定 JPA 行限制查询是否可以有更多行?

java - JPA/hibernate : schema generation with multiple persistence units

jpa - JakrataEE 代码在带有 JTA 数据源的 TomEE 上运行,但由于 RESOURCE_LOCAL 配置而失败

postgresql - 如何将 PostgreSQL 字符串迁移到文本类型?

java - 通过 JPQL UPDATE 查询获取更新的实体

permissions - Symfony2 : How to find the users that have permissions for a certain domain object?

php - DDD,PHP。领域对象和业务逻辑

php - 工作单元模式、getters、setters 和契约 (PHP)

dependency-injection - 如何在没有服务位置的情况下根据域对象中的汇率转换货币

grails - Grails Spring Security ACL域对象方法 protected