2020-08-16 00:27发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的OO专家,
我刚刚完成了"持久性对象"一章的"持久性对象"一章,作者是Horst Keller。
我真的很感激 它的实用程序。 用Google搜索了一下,在SCN上读了一些博客,但该实用程序仍然模糊不清。
我想知道持久性类相对于Open SQL的优势是什么。
BR,
苏哈斯
我想知道持久性类比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 ]!)????
干杯,哈拉尔德
嗨哈拉尔德,
像往常一样,您只是令我敬畏。
我喜欢您的示例"类销售订单,并希望存储和检索销售订单对象(即此类的特定实例)",它给出了关于持久类实例的非常清晰的图景
我对您的SQL v/s持久类持第二观点...谁不喜欢K.I.S.S原理????
希望我能给你20 p * ints????
干杯
Suhas
嗨,
主要优点是,每次使用持久性类时,您都不需要从数据库中获取数据。
因为已经使用SELECT提取了数据。
http://help.sap.com/saphelp_nw2004s/ helpdata/zh-CN/f5/a3682ebc6911d4b2e80050dadfb92b/content.htm
谢谢..
>
>我要迭代的另一点是:ABAP对象中没有持久对象。
错别字...在我的OP中,它应该读为" Persistent Classes"而不是" Persistent Objects"。
感谢指出。
我要迭代的另一点是:ABAP对象中没有持久性对象。 从SAP帮助中:
持久对象的持久性服务 从技术上讲,ABAP对象始终是瞬态的,就像ABAP程序中的数据对象一样。 ABAP对象中没有持久对象。 但是,对象服务中的持久性服务允许应用程序开发人员使用持久性对象。 可以将持久性服务视为ABAP程序和数据存储库(即数据库)之间的软件层,它使您可以保存具有唯一标识的对象的属性,然后在需要时再次加载它们
持久对象的持久性服务
从技术上讲,ABAP对象始终是瞬态的,就像ABAP程序中的数据对象一样。 ABAP对象中没有持久对象。 但是,对象服务中的持久性服务允许应用程序开发人员使用持久性对象。 可以将持久性服务视为ABAP程序和数据存储库(即数据库)之间的软件层,它使您可以保存具有唯一标识的对象的属性,然后在需要时再次加载它们
http://help.sap.com/saphelp_nw04/ helpdata/zh_CN/f5/a3682ebc6911d4b2e80050dadfb92b/frameset.htm
关于
Naimesh Patel
我相信持久性类现在与CDS视图/Fiori具有相同的功能,从某种意义上说,它是前身的技术。 它允许您以面向对象的方式保存在数据库中并处理自定义数据模型。
最多设置5个标签!
让我们首先从SAP关于[持续性服务| http://help.sap.com/saphelp_nw70ehp2/helpdata/zh-CN/f5/a36828bc6911d4b2e80050dadfb92b/frameset.htm ]:
所以我们在这里谈论的是[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 ]):
因此,一般而言,ORM应该通过提供一种将对象转换为(关系)数据库表的框架来简化开发人员的工作。 但是,有时自动转换/生成以及默认的访问方法并不是最佳选择,因此您实际上要回去编写自己的SQL语句以进行数据库到对象的转换,反之亦然。 因此,SAP 持久性类仍然在后台使用OpenSQL,但是在某些情况下(例如,大量处理),您可能希望自己调整使用的SQL语句...
我为长期旅行深表歉意,但最终,我对持久性类的看法很简单:如果它们使您的生活更简单且编码不太复杂,而又不会造成更大的性能损失,请使用它们-否则请坚持使用手工编码的SQL 声明...(万岁[KISS | http://en.wikipedia.org/ wiki/KISS_principle ]!)????
干杯,哈拉尔德
嗨哈拉尔德,
像往常一样,您只是令我敬畏。
我喜欢您的示例"类销售订单,并希望存储和检索销售订单对象(即此类的特定实例)",它给出了关于持久类实例的非常清晰的图景
我对您的SQL v/s持久类持第二观点...谁不喜欢K.I.S.S原理????
希望我能给你20 p * ints????
干杯
Suhas
嗨,
主要优点是,每次使用持久性类时,您都不需要从数据库中获取数据。
因为已经使用SELECT提取了数据。
http://help.sap.com/saphelp_nw2004s/ helpdata/zh-CN/f5/a3682ebc6911d4b2e80050dadfb92b/content.htm
谢谢..
>
错别字...在我的OP中,它应该读为" Persistent Classes"而不是" Persistent Objects"。
感谢指出。
BR,
Suhas
我要迭代的另一点是:ABAP对象中没有持久性对象。 从SAP帮助中:
http://help.sap.com/saphelp_nw04/ helpdata/zh_CN/f5/a3682ebc6911d4b2e80050dadfb92b/frameset.htm
关于
Naimesh Patel
我相信持久性类现在与CDS视图/Fiori具有相同的功能,从某种意义上说,它是前身的技术。 它允许您以面向对象的方式保存在数据库中并处理自定义数据模型。
一周热门 更多>