domain-driven-design - 持久性和暂时性对象-对术语感到困惑

标签 domain-driven-design persistence transient

这是我对这两个术语的定义,尽管我不确定它是否完整:

A persistent object is an instance of a class in the domain model that represents some information extracted from the database. A transient object is an instance of a class in the domain model, which is created in memory



a)我假设持久性和临时性术语仅用于域模型中的对象,而不用于存在于域模型之外的业务层中的对象?

b)我们是否还将两个术语用于数据传输对象?

c)这两个术语也用于值(value)对象吗?

谢谢

最佳答案

持久表示对象已保存到数据库,而 transient 表示尚未保存。因此,例如,当您从存储库中获取实体时,该实体是持久性的。创建新实体时,它是暂时的,直到永久存在。

a)这些术语与ORM的关系比与DDD的关系更紧密,因此它们适用于非DDD的任何事物。在DDD中,持久化/ transient 适用于实体和聚合根,因为这些是与存储库一起持久化的对象。

b)不,DTO旨在跨过程边界传输数据,并且没有生命周期,您希望将其持久保存到数据库中。

c)否,因为值对象没有身份,只能作为实体或聚合根的一部分持久保存。值对象只是一个值,像1这样的排序是一个整数值,谈论它是否持久化没有任何意义。

关于domain-driven-design - 持久性和暂时性对象-对术语感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11458501/

相关文章:

java - @Transient 在 hibernate 状态下不工作

domain-driven-design - 领域驱动设计中的聚合关系

C# MongoDB 查询与 BsonClassMaps

java - 使用 Hibernate 实现基于集合 (DDD) 的存储库

java - 保留 GWT 可视化 API 数据表

sql - 您将如何在您首选的 db 范式中为您的模型实现修订控制系统?

java - db4o 类模型 transient 场

c# - 使用具有复杂过滤器语法的外部 API

java - 非法状态异常 : a relationship that was not marked cascade PERSIST

java - 关键字 "transient"在 Java 中是什么意思?