【问题标题】:InitialValue of transient attribute in a persistent object?持久对象中瞬态属性的初始值?
【发布时间】:2014-03-29 11:53:55
【问题描述】:

尽管我使用了一个特定的 ORM 框架,Bold for Delphi,但我对这个问题的与框架无关的理论观点更感兴趣。

所以问题是关于拥有一个持久对象和一个带有初始值标签的瞬态属性

初始标签指定创建拥有对象的实例时将获取的值属性。

但是当后续从持久化加载这个对象时,transient 属性的值应该是什么?

是否应该再次应用初始值标签?从逻辑上讲,它应该,否则它将被保留为未分配 (null)。

我在任何文档中都找不到关于此特定案例的任何规范。

【问题讨论】:

    标签: uml persistent transient bold-delphi


    【解决方案1】:

    我们不能只创建数据库记录的对象——因为我们会丢失所有的瞬态属性。因此,当您加载持久对象时,只能在已创建的实例中完成。如果不使用设置初始值的基对象构造函数,则没有其他方法可以实例化。当然,某些语言可以解决它,但为什么呢?

    【讨论】:

    • 我使用的框架仅在第一次创建对象时设置属性的初始值。在获取之前的后续重新创建中,它不会设置初始值,因此瞬态属性保持未初始化。我想确认我打算将此视为一个错误并在框架中修复。也许我的问题不是很清楚。
    • @DanielMaurić 如果我们谈论的是一个具体的框架,我会在源代码文档中查找它必须如何完成以及如何完成。你有权限吗?
    • @Gangus:这是一个遗留产品,文档没有具体说明这种特殊情况,但我确实有来源,我们自己维护。目前它只在第一次创建持久对象时设置初始值,我是否应该更改它以便在从 db 恢复时以及在初始创建时设置初始值?
    • @DanielMaurić 这个框架需要支持一些接口吗?
    猜你喜欢
    • 2017-01-10
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 2013-01-06
    • 2011-06-14
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多