计算的 属性,SqlComputed,自定义 getter,同时:什么有优先级?

A property which is Calculated, SqlComputed, with a custom getter, all at the same time: what has the priority?

这是从 this project 中提取的代码(注意:为清楚起见重新格式化):

Class Util.Data.EmojiType Extends %Persistent
{

Property CodePoint As %Integer;

Property UnicodeChar As %String [ 
    Calculated, 
    ReadOnly, 
    SqlComputeCode = { set {*} = $wchar({CodePoint})}, 
    SqlComputed, 
    Transient 
];

// snip

Method UnicodeCharGet() As %String
{
     quit $wchar(..CodePoint)
}

现在,我真的不明白。为什么 UnicodeChar 既是 Calculated 又是 有自定义的 getter(哎哟),plus 自定义的 getter 与 SqlComputeCode?

做的事情完全一样

如果我尝试得到这个 属性,会触发这一切的哪一部分?

即使未计算 属性,也可以调用自定义 getter。但仅适用于对象访问模式。要通过 SQL 查询获取计算值,属性 应该定义所有属性:Calculated、SqlComputed 和 SqlComputeCode。如果定义了 SqlComputeCode,则此代码仅在 SQL 查询中使用。当属性计算了属性,但没有SqlComputed,它不会出现在SQL结果中。

SqlComputed, Calculated