阅读前提
阅读本文需要有Caché面向对象建模和SQL的基本知识。
简介
Caché提供工具让用户自己定义存储Schema (Storage) ,而且用户定义的Storage不影响面向对象、SQL访问,也就是说,不需要修改任何代码。
Caché提供3种Storage Schema:Caché storage、Caché SQL storage、 Custom storage。
我们以一个简单的类Person和其继承类Patient为例来讲解Storage:
Class User.Person Extends %Persistent
{
Property Name As %String;
Property Gender As %String;
Property DOB As %Date;
}
Class User.Patient Extends User.Person
{
Property PID As %String;
}
Caché storage
Caché storage是Caché默认的Storage schema。它产生一个基于列表(list)的多维数组结构。持久化存储的类编译后会自动生成Caché Storage schema。
查看Storage定义:
有两种方式可以查看Storage定义:通过Studio的Storage>Data nodes 编辑器、Storage XML定义。
通过Data nodes 编辑器
在Studio>Inspector里选中Storage,会看到名为Default的Storage定义:
双击Default,然后点击Data Nodes后面的 ,会弹出Data nodes 编辑器:
看到其中只有一个Node,名为”PersonDefaultData”,双击该Node会显示其具体的定义。可以看到默认情况下,所有的非流类型属性组成一个list被放在ID为下标的节点下:
^User.PersonD(ID)=$LB(%%CLASSNAME,Name,Gender,DOB)
通过Data nodes 编辑器
通过Caché Studio的View>View Storage来查看其Storage定义,例如下面我们查看User.Person的Storage定义:
<Storage name="Default">
<Data name="PersonDefaultData">
<Value name="1">
<Value>%%</