有没有办法用 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 不生成将 <daos> 标志设置为 true 的 DAO