当前位置: 首页 > 知识库问答 >
问题:

jOOQ、Pojos和数据库优先设计

郭坚壁
2023-03-14

我正在创建一个应用程序,对jOOQ的当前状态有点困惑。这是我第一次使用jOOQ处理所有东西,包括CRUD,所以我可能会遗漏一些东西。

我知道DAO和POJO可能会被弃用,但是,我不知道如何在数据库优先的设计中处理这个问题。

我能做的最简单的事情就是创建我自己的Pojos,但是我们又回到了通常的JPA实体文件,如果数据库发生了变化,这些文件将无法正确地与记录映射。

1)弃用生成pojos是否意味着我将来必须使用自己的Pojo源生成器?

2) 我是否应该有一个自定义映射器,当Pojo无法将字段映射到Record对象时,它会引发异常?

3)现在继续使用生成的pojos是最好的方法吗?这不是一个巨大的应用程序,但我必须选择一个策略,并在大多数数据库服务中使用它。

共有1个答案

韶和璧
2023-03-14

在jOOQ中执行CRUD的默认方法是使用代码生成器生成的updateablerecord类。另见:https://www.jooq.org/doc/latest/manual/sql-execution/crud-with-updatablerecords

Pojos没有被弃用。#5984的问题描述已经过时,评论是最新的。我已经更新了问题描述以反映这一点。

1) 弃用生成的Pojo是否意味着我将来必须使用自己的Pojo源代码生成器?

不,见上图。

2) 我是否应该有一个自定义映射器,当Pojo无法将字段映射到Record对象时,它会引发异常?

这取决于你的pojos应该做什么。如果您使用jOOQ生成的代码,那么开箱即用的DefaultRecordMapper将始终能够映射它们

3)现在继续使用生成的pojos是最好的方法吗?这不是一个巨大的应用程序,但我必须选择一个策略,并在大多数数据库服务中使用它。

您可能不需要POJO,updateableRecord在大多数情况下就足够了。POJO允许在没有任何jOOQ依赖的情况下传输数据,例如在服务器之间。

 类似资料:
  • 我正在努力理解如何处理与JOOQ的一对多和多对多关系的Pojo。 我存储玩家创建的位置(一对多关系)。一个位置可以容纳多个可能访问它的其他玩家(多对多)。数据库布局可归结为以下内容: 在我的java应用程序中,所有这些信息都存储在一个pojo中。请注意,玩家和受邀玩家列表可以从应用程序中更新,也需要在数据库中更新: 我可以使用JOOQ的pojo映射将这三个记录映射到单个pojo吗?我可以使用这个p

  • 对于多个数据库(和数据库服务器),我有完全相同的数据库定义。我如何告诉Jooq使用与我创建的连接到DB的“连接”相同的数据库? 示例(对于MySQL): jdbc:mysql://localhost:3306/tsm-我的开发数据库(tsm),用于生成代码 所有3个数据库都具有相同的定义、相同的表、索引等。TSM one是我们的应用程序使用的标准。 也许我应该使用DSL。使用(连接、设置)而不是?

  • 当impl jar的时,我收到了这个错误 org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/boot/autocigure/flyway/flywayautociguration$flywayconfiguration.class]中定义的名为“flyway初始化器”的bean时出

  • 根据技术术语,优化表示“在最快的时间内实现更好的性能”。 参照数据库,优化涉及最大化检索数据的速度和效率。 OrientDB支持轻量级边缘,这意味着数据实体之间的直接关系。 简而言之,它是一个字段到字段的关系。 OrientDB提供了不同的方法来优化数据库。 它支持将常规边转换为轻量级边缘。 以下语句是数据库命令的基本语法。 将常规边转换为轻量级边,而禁用输出。 示例 在这个例子中,我们将使用在前

  • 1 基本步骤 基准测试 生产环境分析 数据库优化 2 基准测试 采用sysbench进行基准测试 常用sysbench基准测试命令: 2.1 性能指标 常用的性能指标包括: 吞吐量:TPS 延迟 并发 3 生产环境分析 4 常用MySQL性能优化 4.1 SQL语句优化 4.1.1 索引优化 4.1.2 表结构设计优化 4.2 MySQL配置优化

  • 问题内容: 我有一大堆标识符,我想将其添加到子句中,如下所示: 但是,这非常慢,因为它必须分别绑定每个值。请记住,列表很长(几乎1000个值)。在这种情况下,最好使用: 现在,我们只绑定一次数组。 我尝试在jOOQ中这样做: 生成以下SQL: 因此,这使我得出结论,我们仍在分别绑定每个值?有没有办法对此进行优化? 问题答案: 更换: 带有: 创建单个绑定变量。 或者,您可以显式创建该绑定变量: