每个持久类定义都包含描述类属性如何映射到实际存储它们的Global
的信息。类编译器为类生成此信息,并在修改和重新编译时更新它。
查看此信息可能很有用,在极少数情况下,可能需要更改一些详细信息(非常仔细)。对于持久类,集成开发环境 (IDE
) 将显示类似以下内容作为类定义的一部分:
<Storage name="Default">
<Data name="PersonDefaultData"><Value name="1">
<Value>%%CLASSNAMEValue>
Value>
<Value name="2">
<Value>NameValue>
Value>
<Value name="3">
<Value>SSNValue>
Value>
<Value name="4">
<Value>DOBValue>
Value>
...
Storage>
Globals
存储定义包括几个指定存储数据的Globals
的元素:
<DataLocation>^Sample.PersonDDataLocation>
<IdLocation>^Sample.PersonDIdLocation>
<IndexLocation>^Sample.PersonIIndexLocation>
...
<StreamLocation>^Sample.PersonSStreamLocation>
默认情况下,使用默认存储:
Globals
数据中。它的名称以完整的类名(包括包名)开头。名称后附加 D
。例如:Sample.PersonD
Globals
索引中。其名称以类名开头并以 I
结尾。例如:Sample.PersonI
Globals
中。它的名称以类名开头并以 S
结尾。例如:Sample.PersonS
重要提示:如果完整的类名很长,系统会自动使用类名的哈希形式。因此,当查看存储定义时,有时可能会看到Gloabl
名称,例如 ^package1.pC347.VeryLongCla4F4AD
。如果出于任何原因打算直接使用类的数据Globals
,请务必检查存储定义,以便了解Gloabl
的实际名称。
请注意以下几点:
例外情况是对
元素使用非默认存储类。默认为%Storage.Persistent
;如果不使用此存储类别,IRIS
不会更新存储定义。