jOOQ 常见问题

查询

jOOQ 不支持特定于供应商的函数。我还能使用这个函数吗?

可以,无论何时 jOOQ 中未开箱即用地支持某些内容,你都可以使用纯 SQL 模板使其工作。

如何在 SQL 查询中创建一个常量值?

常量只是普通的 Field 表达式。使用绑定值或内联值

如何将 Field<Boolean> 转换为 Condition

一个可以被另一个包装,请参阅布尔列

为什么我会遇到连接泄漏?

如果你将 JDBC Connection 传递给 jOOQ,jOOQ 永远不会为你关闭它。相反,尝试将 DataSource 传递给 jOOQ,并且jOOQ 将为你管理连接生命周期

如何更改 jOOQ 生成的 SQL 中表和列的限定(例如,用于多租户)?

默认情况下,jOOQ 完全限定表、列和其他对象的所有标识符。但是,使用运行时模式映射功能,你可以在运行时以配置方式更改这些限定。

代码生成

我不想连接到实时数据库进行代码生成。我可以这样做吗?

是的,我们目前支持从XMLJPA 实体SQL 脚本生成代码,而无需实时连接。

我必须使用代码生成器吗?

虽然我们建议使用它,但你不必这样做。你可以仅从标识符创建查询

将生成的代码放在哪里?

这个问题没有正确的答案,但有一些观点

为什么没有生成任何类?

A1
<inputSchema/> 和许多其他配置元素区分大小写。请检查你是否使用了正确的大小写。

A2
你的数据库用户需要适当的权限才能查询字典视图/信息模式。

我得到了 NoClassDefFoundErrorClassNotFoundException

一个很可能的原因是你在代码生成器和运行时使用了不同的 jOOQ 版本。如果你使用第三方依赖管理(例如Spring Boot)或第三方 jOOQ gradle 插件,则可能会发生这种情况。确保你为所有内容使用相同的 jOOQ 版本(和版本!)。

The jOOQ Logo