为什么我们需要持久性课程?

2020-08-16 00:27发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的OO专家, 我刚刚完成了持...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的OO专家,

我刚刚完成了"持久性对象"一章的"持久性对象"一章,作者是Horst Keller。

我真的很感激 它的实用程序。 用Google搜索了一下,在SCN上读了一些博客,但该实用程序仍然模糊不清。

我想知道持久性类相对于Open SQL的优势是什么。

BR,

苏哈斯

6条回答
Climb_Ma
2020-08-16 00:34 .采纳回答

我想知道持久性类比Open SQL有什么优势。

让我们首先从SAP关于[持续性服务| http://help.sap.com/saphelp_nw70ehp2/helpdata/zh-CN/f5/a36828bc6911d4b2e80050dadfb92b/frameset.htm ]:

Persistence Service使ABAP程序员能够以面向对象的方式处理关系数据库数据。

所以我们在这里谈论的是[ORM | http:// zh.wikipedia.org/wiki/Object-relational_mapping ]框架。 即 数据的永久存储是通过[relational database | http://en.wikipedia.org/wiki/Relational_database ],其中数据模型不是面向对象的。 假设您已经创建了一个销售订单类,并且想要存储和检索销售订单对象(即此类的特定实例)。 如果您有关系数据库,则必须为代表您的销售订单类的相应模式建模,然后将翻译从数据库表"手工编码"到销售订单对象,反之 反之亦然。

现在想象一个您拥有一个不错的ORM的世界,它可以为您完成工作。 例如。 看看像[grails | http://www.grails.org /]这样的网络框架 大量使用[常规配置] | http://en.wikipedia.org/wiki/ Convention_over_configuration ],它使您可以轻松地从您的对象生成数据库表示形式(无需大量的编码/工作!)。 从本质上讲,您可以从类定义开始,定义一些属性,然后框架(ORM)会自动为您生成相应的数据库表。

与SAP进行对比(请参见[关于持久性类的映射助手| http://help.sap.com/saphelp_nw70ehp2/helpdata/zh-CN/d9/b84508bc9411d4b2e80050dadfb92b/frameset.htm ]):

您可能必须在ABAP词典中为对象模型创建新的数据库表,数据库视图或结构。 目前,系统无法自动执行此功能。

因此,一般而言,ORM应该通过提供一种将对象转换为(关系)数据库表的框架来简化开发人员的工作。 但是,有时自动转换/生成以及默认的访问方法并不是最佳选择,因此您实际上要回去编写自己的SQL语句以进行数据库到对象的转换,反之亦然。 因此,SAP 持久性类仍然在后台使用OpenSQL,但是在某些情况下(例如,大量处理),您可能希望自己调整使用的SQL语句...

我为长期旅行深表歉意,但最终,我对持久性类的看法很简单:如果它们使您的生活更简单且编码不太复杂,而又不会造成更大的性能损失,请使用它们-否则请坚持使用手工编码的SQL 声明...(万岁[KISS | http://en.wikipedia.org/ wiki/KISS_principle ]!)????

干杯,哈拉尔德

一周热门 更多>