有没有办法用 JOOQ 生成 DAO,findById 返回 Optional

Posted

技术标签:

【中文标题】有没有办法用 JOOQ 生成 DAO,findById 返回 Optional【英文标题】:Is there a way to generate DAOs with JOOQ with findById returning Optional 【发布时间】:2021-12-16 03:10:53 【问题描述】:

使用生成的 DAO 会导致复制粘贴代码,例如:

var entity = dao.findById(id); 
log.debug("entity: ", entity) 
if (entity == null)
    raise SpecificRuntimeException(); 

我会很高兴这样做:

var entity = dao.findOptionalById(id)
    .orElseThrow(() -> new SpecificRuntimeException())

【问题讨论】:

我只是觉得它不太容易出错 【参考方案1】:

这不是故意遗漏,只是缺少的功能,将在 jOOQ 3.16 中添加:https://github.com/jOOQ/jOOQ/issues/12583

作为一种解决方法,您可以自己在每个生成的 DAO 类型上生成该方法,如下所述:https://www.jooq.org/doc/latest/manual/code-generation/codegen-custom-code/

【讨论】:

以上是关于有没有办法用 JOOQ 生成 DAO,findById 返回 Optional的主要内容,如果未能解决你的问题,请参考以下文章

jOOQ 自定义 Pojo 和 DAO 生成

jOOQ 不生成将 <daos> 标志设置为 true 的 DAO

有没有办法在 JOOQ 中为具有相同表结构的多个模式设置代码生成?

JOOQ DAO 使用事务支持

有没有办法在 Jooq 中通过示例进行查询?

Jooq 生成视图类