Spring Hibernate SAP集成

Spring Hibernate SAP集成,spring,hibernate,sap,hibernate-mapping,spring-orm,Spring,Hibernate,Sap,Hibernate Mapping,Spring Orm,我们可以集成Hibernate和SAP吗?我确实用Hibernate集成了一些数据库。由于我不了解SAP,我想知道Hibernate是否提供了任何支持将其与SAP集成。据我所知,我认为不存在这种支持。SAP有自己的数据映射策略,称为,并提供特殊功能来插入、更新和删除数据,以确保数据一致性。这些功能被调用,除非您有权调用这些BAPI,否则您将无能为力。如需更多参考,请查看此 确保您可以直接(如果系统管理员和/或DBA允许)连接到数据库,但这是不可取的,而且非常危险,因为您可能会在系统中造成不一致。

我们可以集成Hibernate和SAP吗?我确实用Hibernate集成了一些数据库。由于我不了解SAP,我想知道Hibernate是否提供了任何支持将其与SAP集成。

据我所知,我认为不存在这种支持。SAP有自己的数据映射策略,称为,并提供特殊功能来插入、更新和删除数据,以确保数据一致性。这些功能被调用,除非您有权调用这些BAPI,否则您将无能为力。如需更多参考,请查看此

确保您可以直接(如果系统管理员和/或DBA允许)连接到数据库,但这是不可取的,而且非常危险,因为您可能会在系统中造成不一致。请不要尝试这种方法

但是,您可以使用我前面提到的连接器之类的软件,也可以使用SAP接口系统。您可以通过查看条款找到有关此问题的更多信息

另一种策略是在数据库上使用中间表,您和SAP在其中获取和写入数据,并通过一些控件相互通信,但在这个问题上,如果使用标准表或自定义表(Z表),您将使用BAPI,这样您可以更自由地进行自己的更改


希望它有帮助

不,因为SAP不是一个数据库

SAP是一种由数据库支持的软件。它确实支持几种不同的RDBMS系统。理论上,您可以使用Hibernate访问支持SAP系统的数据库,但这可能不是一个好主意。hibernate和SAP都是建立在对数据库具有独占访问权限的假设之上的。让另一个应用程序在不知情的情况下对数据库进行更改可能会导致各种模糊的问题


但是,还有其他几种方法可以将SAP集成到您的业务流程中,例如使用SAP专有RFC协议调用BAPI功能模型,通过IDocs、批处理输入、SOAP Web服务等进行通信。

如果您将SAP系统视为RDBMS中的数据库:不,您不能,因为事实并非如此——正如其他人所指出的那样


如果您想使用类似Hibernate的东西来访问后端系统,您可能需要看一下

可以说SAP在应用层中构建了自己的“Hibernate框架”,称为OpenSQL(我想这是在Hibernate之前构建的)。因此,SAP应用程序(ERP/CRM/SRM等)可以与任何数据库类型进行通信。因此,可以这样想,SAP对不同的数据库有一种方言

但是,当您将SAP应用程序配置为使用数据库时,该数据库会被SAP锁定,您甚至不应该尝试对其进行黑客攻击,以便使用direct SQL或任何其他框架(如Hibernate)直接更新数据库。SAP在将数据保存到数据库之前会进行100次验证和检查,如果直接更新数据库,则将跳过这些检查

我认为没有任何组织会允许您在生产环境中这样做,如果他们允许您这样做,他们就不需要SAP


SAP拥有一些数据库产品,如maxDB、sybase、HANA等。Hibernate拥有这些产品的方言。使用HANA进行Hibernate可能会很有趣。

您可以连接到底层SAP数据库,该数据库可能是Oracle、IBM DB2、MySQL等,但只能进行
只读访问。不允许更改,因为业务逻辑位于应用程序层(从技术上讲,SAP应用程序服务器中的ABAP代码)。因此,写入数据库肯定会是一场灾难,尤其是对于SAP标准透明表而言。