• 第三十八章 持久对象和SQL - 持久类的特殊选项


    第三十八章 持久对象和SQL - 持久类的特殊选项

    持久类的特殊选项

    IRIS 中,所有持久类都在中扩展 %Library.Persistent(也称为 %Persistent)。此类为 IRIS 中的对象 SQL 对应关系提供了大部分框架。在持久类中,有如下选项:

    • 能够使用方法打开、保存和删除对象。

    当打开持久对象时,可以指定并发锁定的程度,因为持久对象可能会被多个用户或多个进程使用。

    当打开对象实例并引用对象值属性时,系统也会自动打开该对象。此过程称为混合。然后也可以使用该对象。在下面的示例中,当打开 Sample.Person 对象时,会混合相应的 Sample.Address 对象:

     Set person=##class(Sample.Person).%OpenId(10)
     Set person.Name="Andrew Park"
     Set person.Address.City="Birmingham" 
     Do person.%Save()
    
    • 1
    • 2
    • 3
    • 4
    import iris
    person=iris.cls("Sample.Person")._OpenId(10)
    person.Name="Andrew Park"
    person.Address.City="Birmingham"
    person._Save()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    类似地,当你保存一个对象时,系统也会自动保存它的所有对象值属性;这称为深度保存。可以选择执行浅保存。

    • 能够使用默认查询(范围查询),该查询是包含此类对象数据的 SQL 结果集。默认情况下,范围查询返回范围内的现有 ID。可以对其进行修改以返回更多列。

    在此类(或其他类)中,可以定义其他查询。

    • 能够定义作为外键映射到 SQL 的类之间的关系。

    关系是一种特殊类型的对象值属性,它定义两个或多个对象实例如何相互关联。每个关系都是双面的:对于每个关系定义,都有一个相应的逆关系定义另一面。 IRIS 自动强制执行数据的引用完整性,一侧的任何操作在另一侧立即可见。关系自动管理它们在内存中和磁盘上的行为。它们还提供了优于对象集合的扩展性和并发性(请参阅集合类)。

    • 能够定义外键。在实践中,可以添加外键来向现有应用程序添加引用完整性约束。对于新应用程序,定义关系更简单。
    • 能够在这些类中定义索引。

    索引提供了一种优化跨持久类实例的搜索的机制;它们定义了与某个类相关的常用请求数据的特定排序子集。它们对于减少性能关键型搜索的开销非常有帮助。

    索引可以根据属于其类别的一个或多个属性进行排序。这使可以对返回结果的顺序进行大量特定控制。

    此外,索引还可以存储基于排序属性的查询经常请求的附加数据。通过包含附加数据作为索引的一部分,可以极大地提高使用索引的查询的性能;当查询使用索引生成其结果集时,它可以在不访问主数据存储设施的情况下执行此操作。

    • 能够在这些类中定义触发器来控制插入、修改或删除行时发生的情况。
    • 能够将方法和类查询映射为 SQL 存储过程。
    • 能够微调 SQL 的映射(例如,指定 SQL 查询中看到的表和列名称)。
    • 能够微调存储对象数据的Global的结构。

    注意:无法在 Python 中定义关系、外键或索引。

  • 相关阅读:
    Nginx基本介绍
    Javascript知识【jQuery:数组遍历和事件】
    嵌入式养成计划-43----QT QMainWindow中常用类的使用--ui界面文件--资源文件的添加--信号与槽
    java spring cloud 企业电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展
    PG::FunboxEasyEnum
    web中间件漏洞-Redis漏洞未授权访问漏洞-写webshell、写ssh公钥
    unity 实现多个物体或单个物体 让其单击物体让其显示再次单击让其隐藏
    Redis数据持久化(详解+样例)
    多环境镜像晋级/复用最佳实践
    程序员写出代码版《本草纲目》毽子操,刘畊宏回复:很cool
  • 原文地址:https://blog.csdn.net/yaoxin521123/article/details/133375470