一款以 Jimmer 为核心的 Java 脚手架
https://github.com/ccmjga/mjga-scaffold/tree/model-first

1. 简介
在本教程中,我们将回顾 Jimmer ORM 框架。在撰写本文时,这个 ORM 相对较新,但它有一些有前途的功能。我们将回顾 Jimmer 的哲学,然后用它写一些例子。
2. 整体架构
首先,Jimmer 不是 JPA 实现。这意味着 Jimmer 并没有实现每个 JPA 功能。例如,Jimmer 本身没有脏检查机制 。不过,值得一提的是,Jimmer 和 Hibernate 一样,有很多类似的概念。这是有意为之的,以便使从 Hibernate 的过渡更加顺畅。因此,一般来说,JPA 知识将有助于理解 Jimmer。
例如,Jimmer 有一个实体的概念,尽管它的形状和设计与 Hibernate 有很大不同。但是,延迟加载或级联等概念在 Jimmer 中并不存在。原因是由于其设计方式,它们在 Jimmer 中并没有多大意义。我们很快就会看到这一点。
本节的最后说明:Jimmer 支持多种数据库,包括 MySQL、Oracle、PostgreSQL、SQL Server、SQLite 和 H2。
3. 实体样本
如前所述,Jimmer 与 Hibernate 和许多其他 ORM 框架有很多不同;它有几个关键的设计原则。第一个是我们的实体只有一个目的——代表底层数据库的模式。但是,这里重要的是,我们没有指定我们打算通过注释与它交互的方式。 相反,Jimmer 要求开发人员提供派生要在调用站点上执行的查询所需的所有信息 。
那么,这意味着什么呢?为了理解,让我们查看以下 Jimmer 实体:
import org.babyfish.jimmer.client.TNullable;
import org.babyfish.jimmer.sql.Column;
import org.babyfish.jimmer.sql.Entity;
import org.babyfish.jimmer.sql.GeneratedValue;
import org.babyfish.jimmer.sql.GenerationType;
import org.babyfish.jimmer.sql.Id;
import org.babyfish.jimmer.sql.JoinColumn;
import org.babyfish.jimmer.sql.ManyToOne;
import org.babyfish.jimmer.sql.OneToMany;
@Entity
public interface Book {
@Id
@GeneratedValue(strategy = GenerationType.USER)
long id();

最低0.47元/天 解锁文章
397

被折叠的 条评论
为什么被折叠?



