IntelliJ IDEA Ultimate 功能
JPA Buddy 是一个免费的 IntelliJ 插件。 只有 IntelliJ IDEA Ultimate Edition 订阅者可以使用一些功能。 在本节中,我们将告诉您 IntelliJ IDEA Ultimate Edition 中提供的功能如何帮助开发人员加速开发过程并节省大量例行工作时间。
Liquibase
比对 Liquibase 更改日志生成 是一项非常有用的功能,可以节省大量的例行工作时间。 通过使用它,您可以自动生成一个 Liquibase 更改日志,其中包含更新数据库所需的所有代码,以便与您的 JPA 模型保持一致。 可以通过将您的 JPA entities 与数据库、两个数据库进行比较,甚至可以比较来自一个 VCS branch 的 JPA entities 和来自另一个 VCS branch 的 JPA entities 来生成差异日志,当您无权访问目标数据库时,这非常有用。
此外,JPA Buddy 提供了 初始化 schema Liquibase 变更日志操作,帮助开发人员从头开始生成数据库 schema。 它可以使用您的 JPA 实体或现有数据库作为来源。 因此,您将获得包含架构初始化所需全部命令的 Liquibase 更改日志。 如果您将 Liquibase 集成到现有应用程序中,或者决定生成一个用于数据库初始化的单一脚本,而不是运行大量旧的更改日志,那么这个功能会非常有帮助。 此外,这可能有助于设置新的开发或测试环境。
Flyway
Flyway versioned migration generation 是一个非常有用的功能,可以节省很多日常工作的时间。 通过使用它,您可以自动生成包含更新数据库所需 DDL 的迁移,以便符合您的 JPA 模型。 通过比较您的 JPA 实体与数据库、两个数据库,甚至是两个 VCS 分支的 JPA 实体,可以生成此类具有差异 DDL 的 Flyway 迁移,这在您无法访问目标数据库时非常有用。
此外,JPA Buddy 提供了 Init schema Flyway migration操作,帮助开发人员从头开始生成数据库架构。 它可以使用您的 JPA 实体或现有数据库作为来源。 因此,您将得到一个包含架构初始化所需 DDL 的 Flyway 版本迁移。 如果您将 Flyway 集成到现有应用程序中,或决定生成一个单独的脚本进行数据库初始化,而不是运行大量旧的迁移,这个功能将非常有用。 此外,这可能有助于设置新的开发或测试环境。
按实体的 DDL
Generate DDL by Entities 操作可以让开发人员通过几次点击将实体转换为 DDL 语句。 它既可以生成用于从头创建数据库架构的初始化脚本,也可以生成差分DDL来将现有数据库更新到与JPA实体一致的有效状态。 此外,此功能对于替代易出错的 spring.jpa.hibernate.ddl-auto 属性非常有用。 通过使用 JPA Buddy 操作,您将能够在执行之前完全控制 DDL,设置适当的 Java <-> DB 类型映射,使用属性转换器和 Hibernate 类型映射字段,生成 drop 语句等等。
逆向工程
如果您倾向于先设计数据库,然后编写 JPA 实体来映射表,或者如果您在已有的数据库上开发应用程序,则此功能将对您极为有用,并节省大量常规工作时间! 通过使用 Entities from DB action ,您可以在几次点击内将选定的数据库表及其属性转换为 JPA 实体,包括约束、索引、列属性等。 它还支持 ManyToOne、OneToOne、OneToMany 和 ManyToMany 关联的映射。 最好的部分是,它不会重新生成整个实体,而是会将新字段添加到现有的实体声明中。
DTO Generator
DTO 对于 web 应用至关重要,但它们的实现带来了样板代码。 每个都带有一个映射器的几十个几乎复制您的实体的类。 借助 DTO Generation功能,您可以节省日常工作中的时间。 使用它,您可以基于 JPA 实体定义创建 DTO 和 MapStruct 映射器。
但这还不是全部! 随着时间的推移,实体可能会发生变化,您需要相应地更改 DTO。 JPA Buddy 也解决了这个问题。 它使您能够 将实体与其 DTO 同步 ,反之亦然。
此外,JPA Buddy 提供 Entity from POJO操作,帮助您从任何 java/kotlin 类生成一个 JPA 实体。 如果您按照 API-first 方法开发应用程序,此功能可能会有所帮助:首先为 API 定义 DTOs,然后再实现数据模型。