jOOQ,Pojos和数据库优先设计

时间:2019-07-18 14:53:37

标签: jooq

我正在创建一个应用程序,但对jOOQ的当前状态有些困惑。这是我第一次将jOOQ用于包括CRUD在内的所有内容,因此我可能会缺少一些东西。

我知道DAO和Pojos可能正在使用deprecated,但是,我无法在数据库第一Design中解决这个问题。

我能做的最简单的事情是创建自己的Pojos,但是我们回到了普通的JPA实体文件,如果数据库发生了更改,这些文件将无法与Record正确映射。

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

2)我应该有一个自定义的映射器,当Pojo无法使用Record对象映射字段时会抛出异常吗?

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

1 个答案:

答案 0 :(得分:0)

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

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

  

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

不,请参见上方。

  

2)我应该有一个自定义的映射器,当Pojo无法使用Record对象映射字段时会抛出异常吗?

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

  

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

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