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

文章目录

  • 第四十章 持久对象和SQL - Object IDs
  • Object IDs
    • `ID`是如何确定的
    • 访问 `ID`

第四十章 持久对象和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

第四十章 持久对象和SQL - Object IDs_第1张图片

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

你可能感兴趣的:(IRIS编程指北,sql,python,数据库,开发语言,Cache,IRIS,数据结构)