美文网首页
第四十章 持久对象和SQL - Object IDs

第四十章 持久对象和SQL - Object IDs

作者: Cache技术分享 | 来源:发表于2023-09-26 07:27 被阅读0次

    第四十章 持久对象和SQL - Object IDs

    Object IDs

    每个对象在其所属的每个范围内都有一个唯一的 ID。在大多数情况下,使用此 ID 来处理对象。此 ID 是类中 %Persistent 的以下常用方法的参数:

    • %DeleteId()
    • %ExistsId()
    • %OpenId()

    该类还有其他使用 ID 的方法。

    ID是如何确定的

    当首次保存对象时,会分配 ID 值。该任务是永久性的;无法更改对象的 ID。当删除或更改其他对象时,不会为对象分配新的 ID

    任何ID在其范围内都是唯一的。

    对象的 ID 确定如下:

    • 对于大多数类,默认情况下,ID 是在保存该类的对象时按顺序分配的整数。
    • 对于在父子关系中用作子类的类,ID 的构成如下:
    parentID||childID
    

    其中,parentID 是父对象的 IDchildID 是子对象在未在父子关系中使用时将收到的 ID。例子:

    104||3
    

    ID 是已保存的第三个子 ID,其父 ID 在其自己的范围内具有 ID 104

    • 如果该类具有 IdKey 类型的索引并且该索引位于特定属性上,则该属性值将用作 ID
    SKU-447
    

    此外,属性值无法更改。

    • 如果该类具有 IdKey 类型的索引,并且该索引位于多个属性上,则这些属性值将连接起来形成 ID。例如:
    CATEGORY12||SUBCATEGORYA
    

    .
    此外,这些属性值无法更改。

    访问 ID

    要访问对象的 ID 值,请使用该对象从 %Persistent继承的 %Id() 实例方法。

    SAMPLES>set person=##class(Sample.Person).%OpenId(2)
    
    SAMPLES>write person.%Id()
    2
    
    >>> person = iris.cls("Sample.Person")._OpenId(2)
    >>> print(person._Id())
    2
    

    SQL 中,对象的 ID 值可用作名为 %Id 的伪字段。请注意,当在管理门户中浏览表时,%Id 伪字段会显示标题 ID

    image.png

    尽管有这个标题,伪字段的名称是 %Id

    相关文章

      网友评论

          本文标题:第四十章 持久对象和SQL - Object IDs

          本文链接:https://www.haomeiwen.com/subject/ybacbdtx.html