如何使用基于 jsontype 属性的 jOOQ 从数据库中检索数据

How to retrieve data from database using jOOQ based on jsontype properties

我们有一个员工 table,json 类型的地址列如下所述

员工Table:

如何使用 jOOQ 根据地址列中的城市名称检索员工详细信息?

您可以使用 jOOQ 的内置 JSON_VALUE() 支持:

ctx.selectFrom(EMPLOYEE)
   .where(cast(jsonValue(EMPLOYEE.ADDRESS, "$.city"), VARCHAR).eq("\"Mumbai\""))
   .fetch();

这是假设您使用代码生成并具有通常的静态导入:

import static org.jooq.impl.DSL.*;
import static org.jooq.impl.SQLDataType.*;

如果您需要支持 jOOQ(目前)不支持的任何其他供应商特定的 JSON 函数,请改用普通 SQL 模板。

但是,这种方法不太可能利用索引,所以如果可以的话,我建议对这些数据进行规范化。