1. 查询任意形状
基本概念
虽然Jimmer实体是强类型的,但也是动态的,可以表达千变万化的数据结构的形状。
因此,Jimmer支持对象抓取器,可以控制被查询的数据结构的形状,然后统一返回Jimmer实体。
提示
这是一个和GraphQL极其类似的概念,但和GraphQL存在巨大的差异
-
GraphQL是一个基于HTTP的应用层协议,只能通过构建HTTP服务来暴露这个功能,只有HTTP客户端可以享受这种能力。
-
Jimmer对任意形状的查询,是一种ORM的固有行为,可以在任何地方编程使用。
-
你既可以用它暴露GraphQL服务。
-
也可以如本章节即将的展示的内容一样暴露REST服务。
-
甚至还可以不跨越任何远程边界在应用内部使用。
-
效果图
- Java
- Kotlin
信息
和GraphQL比较
- GraphQL基于HTTP服务,该功能只有在跨越HTTP服务的边界才能呈现;而在Jimmer中,这是ORM的基础API,你可以在任何代码逻辑中使用此能力。
- 截止到目前为止,GraphQL协议不支持对深度无限的自关联属性的递归查询;而Jimmer支持。