我们可以集成 Hibernate 和 SAP 吗?我确实已经将一些数据库与 Hibernate 集成在一起。由于不了解 SAP,我想知道 Hibernate 是否提供任何支持以将其与 SAP 集成。
4 回答
据我所知,我认为不存在。SAP 有自己的数据映射策略,称为Open SQL,还提供插入、更新和删除数据的特殊函数,这些函数也确保数据一致性,这些函数称为BAPI,除非你有一个SAP 连接器来调用这些 BAPI,否则你就没什么用了可以做。有关更多参考,请查看此.Net 连接器示例。
当然,您可以直接(如果系统管理员和/或 DBA 允许)连接到数据库,但这是不可取的,而且非常危险,因为您可能会在系统中造成不一致。请不要尝试这种方法。
但是,您可以使用我之前提到的连接器之类的软件,也可以使用 SAP 接口系统。您可以查看术语ALE 和 IDocs找到有关此问题的更多信息。
另一种策略是在数据库上使用中间表,您和 SAP 在其中获取和写入数据,并通过一些控件相互通信,但在此问题上,如果使用标准表或制作自定义表(Z 表),您将使用 BAPI在这里您可以更自由地进行自己的更改。
希望能帮助到你
不,因为 SAP 不是数据库。
SAP 是一种由数据库支持的软件。它确实支持几种不同的 RDBMS 系统。从理论上讲,您可以使用 Hibernate 访问支持您的 SAP 系统的数据库,但这可能不是一个好主意。hibernate 和 SAP 都建立在它们对数据库具有独占访问权的假设之上。让另一个应用程序在他们不知道的情况下对数据库进行更改可能会导致各种晦涩难懂的问题。
但是,还有其他几种方法可以将 SAP 集成到您的业务流程中,例如使用 SAP 的专有 RFC 协议调用 BAPI 函数模型、通过 IDoc、Batch-Input、SOAP Web 服务等进行通信。
如果您将 SAP 系统视为 RDBMS 中的数据库:不,您不能,因为它不是 - 正如其他人所指出的那样。
如果你想使用类似 Hibernate 的东西来访问后端系统,你可能想看看Hibersap。
您可以说 SAP 在名为 OpenSQL 的应用层中构建了自己的“Hibernate 框架”(我猜这是在 Hibernate 之前构建的)。因此 SAP 应用程序(ERP/CRM/SRM 等)可以与任何数据库类型进行通信。所以可以这样想,SAP 对不同的数据库有一种方言。
但是,当您将 SAP 应用程序配置为使用数据库时,该数据库被 SAP 锁定,您甚至不应该尝试破解它以使用直接 SQL 或任何其他框架(如 Hibernate)直接更新数据库。SAP 在将数据保存到数据库之前会进行 100 次验证和检查,如果您直接更新数据库,您将绕过这些检查。
我认为没有任何组织允许你在生产环境中这样做,如果他们允许,他们就不需要 SAP。
SAP 拥有一些数据库产品,如 maxDB、sybase、HANA 等。Hibernate 拥有这些产品的方言。使用 HANA 进行休眠可能会很有趣。