CAWF(Content authoring and web framework)是在云平台集成领域开发并维护的框架。该框架已投入使用多年,且被参与ISuite的大多数微服务所采用。其主要组成部分如下:
- Web与UI框架:支持符合通用用户体验范式的UI框架,以及用于API开发的编程模型。
- 存储层:支持基于资源的存储抽象,具备版本控制、过滤等功能。
未使用传统ORM框架(如Hibernate、MyBatis)
一、jOOQ框架的使用
- 导入语句:
import org.jooq.Condition;
import org.jooq.DSLContext;
- 框架作用:
jOOQ是一个类型安全的SQL构建工具,允许通过Java API生成和执行SQL,主要特点:- 类型安全:避免SQL注入,编译时检查查询合法性。
- 流式API:通过链式调用构建复杂查询(如
DSLContext.select().from().where()
)。 - 替代原生JDBC:比手写SQL更安全,比ORM更灵活。
二、SAP内容存储框架(Content Store)
- 核心接口:
IContentStoreRead
/IContentStoreWrite
:SAP提供的内容存储读写接口,可能用于非结构化数据管理。ISessionInformationProvider
:会话信息管理,可能涉及权限或租户隔离。
- 应用场景:
该框架属于SAP内部解决方案,通常用于:- 存储文档、配置文件等非结构化数据。
- 集成SAP系统(如S/4HANA)的内容管理模块。
三、未使用传统ORM框架的证据
-
缺少ORM关键元素:
- 无
@Entity
、@Table
等JPA注解。 - 无
SessionFactory
、EntityManager
等ORM核心接口。
- 无
-
数据访问方式:
- 通过
IContentStoreRead
接口操作内容存储,而非操作关系型数据库表。 org.jooq
的使用表明可能混合了原生SQL查询,但未体现对象-关系映射逻辑。
- 通过
四、架构模式
-
混合架构:
- jOOQ:处理结构化数据的SQL查询(如关系型数据库)。
- Content Store:处理非结构化数据(如文档、配置)。
-
自定义DAO模式:
- 通过
IResourceHandler
等接口封装数据访问逻辑,符合DAO模式规范。 ArtifactUtil
等工具类负责对象转换,替代ORM的自动映射。
- 通过
五、与传统ORM的对比
特征 | 当前代码架构 | Hibernate等ORM |
---|---|---|
数据模型 | 混合结构化/非结构化数据 | 专注于关系型数据映射 |
查询方式 | jOOQ构建SQL + 内容存储API | HQL/JPQL或Criteria API |
对象映射 | 手动转换(如ArtifactUtil ) | 自动映射(注解/XML配置) |
框架依赖 | SAP内部组件 + jOOQ | ORM框架自身 + JPA标准 |
六、总结
该项目采用了SAP内容存储框架和jOOQ工具的混合架构,而非传统ORM框架:
- jOOQ:提供类型安全的SQL操作,适用于需要精细控制查询的场景。
- Content Store:处理非结构化数据,与SAP系统深度集成。
- 未使用ORM:无对象-关系映射逻辑,数据转换通过自定义工具类实现。