Closed thegenius closed 1 month ago
主要原因:和DTO不同,Jimmer实体不是POJO, 而具备动态性。https://babyfish-ct.github.io/jimmer-doc/zh/docs/object/dynamic. 这点非常重要,Jimmer绝大部分革命性的生产方式都是建立在这个基础之上,毁灭POJO是所有变革的第一步。
次要原因:Java record甚至kotlin data class,是为简单不可变对象设计,根本不是为复杂不可变数据结构设计,不适合ORM: https://babyfish-ct.github.io/jimmer-doc/zh/docs/object/immutable/current-situation
这两个原因,所以让开发人员写接口,该接口的幕后实现逻辑具体多复杂和用户无关,交给jimmer预编译器即可
从B站过来,看了文档,体验了简单的例子。 发现和现有项目融合时最大的卡点是实体是interface, 看了一下主要是因为希望达成类似immer的不可变实体。 但是新版java已经支持了record,就是不可变的。 是否考虑使用record支持不可变性,而不是用interface。 如果考虑使用interface,其实也可以,但是否至少在生成的代码中生成一个具体实现类。