2024年来临之际,给大家带来一款新型的Java ORM框架(按现有设计,有望支持其他语言)作为新年礼物,名叫Orca。还在开发中,之后继续更新开发进度。

Orca的主要设计目标是:

  1. 要简单易用,原生支持领域驱动设计
  2. 在功能和性能上要超越传统ORM框架,例如JPA (Hibernate)
  3. 提供低代码/无代码开发模式
  4. 数据与代码一体化架构,简化应用程序发布过程
  5. 支持GraalVM

为什么要发明Orca呢?因为Java社区没有好用的ORM框架,20年来没有什么实质上的改善。JPA功能多,但是性能差;MyBatis性能强,但是功能少;其他小众的ORM框架也不如人意。而且,GraalVM的兴起也对ORM框架提出了新要求,让传统ORM框架黯然失色。Orca在追求高性能、支持GraalVM的同时,还支持JPA所具有的这些功能:自动建表、变更检测、关联、级联、惰性加载、查询条件构建器(Criteria Builder),等等。

与JPA显著不同的是,Orca的实体类(entity class)不是用注解Java代码的方式来编写的,而是用配置的方式来编写的(用可视化编辑器在线编辑,生成YAML文件,也可以直接编辑YAML文件),这样一来就能提供低代码/无代码开发模式,甚至可以一键发布并且热部署。默认情况下,实体类甚至是没有代码的,直接就能以动态类型的方式在线运行。另外,您也可以选择自动导出Java代码,以便于用静态类型的方式与其他程序集成。至于为什么不能用Java编写实体类,再导入回模型?因为从架构上来说,实体类需要有唯一的source of truth,要么用配置的方式,要么用写代码的方式,不能混着用,以免造成混乱。如果大家认为确实有必要支持用Java编写实体类,也许可以考虑提供支持。

model.jpg

Orca还是数据引擎的基础。在我们即将推出的文章中,将会介绍企业应用平台的六大引擎,其中最重要的就是数据引擎。数据引擎负责数据的建模、管理和存取,为其他引擎提供数据源。

Orca的开发过程也十分有趣,各种架构模式和设计模式的使用,都值得向大家分享。


sorra
841 声望78 粉丝