使用DTO语言
Jimmer提供了DTO语言。
开发人员可以使用此语言快速定义要保存的Input DTO的形状,编译后
-
相关的Java/Kotlin Input DTO类将会被自动生成
-
Input DTO和实体之间的彼此转化逻辑会被自动生成
-
与之形状吻合 的对象抓取器会被自动生成。(这个功能和input DTO无关,所以本文不做论述)
开发人员用自动生成的Input DTO作为API的入参,一行代码保存它即可 (内部逻辑:调用自动生成的转化逻辑把Input DTO转化为动态实体对象,再用保存指令直接保存)。
信息
这是消除Input DTO爆炸带来的痛苦的最高效方案
定义DTO的形状
本文侧重于讲解如何保存静态DTO类型,并非系统性介绍DTO语言,请参考对象篇/DTO转换/DTO语言以了解完整的DTO语言。
假如Book
类的全名为com.yourcompany.yourpoject.model.Book
,你可以
-
在实体定义所在项目中,建立目录
src/main/dto
-
在
src/main/dto
下,按实体类型所处的包路径建立子目录com/yourcompany/yourpoject/model
-
在上一步建立的目录下,建立文件
Book.dto
,文件必须和实体类同名,扩展名必须为dto
-
编辑此文件,利用DTO语言,定义Book实体的各种DTO形状
Book.dtoBookInput {
#allScalars(Book)
id(store)
authors {
#allScalars(Author)
-id
}
}
SimpleBookInput { ...略... }
...省略其他Input DTO形状定义...