【发布时间】:2022-01-11 09:59:00
【问题描述】:
【问题讨论】:
【问题讨论】:
你可以使用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 模板。
但是,这种方法不太可能利用索引,所以如果可以的话,我建议对这些数据进行规范化。
【讨论】:
employee .name from employee where cast(json_extract(employee.address, ?) as char) = ?选择employee .name from employee where cast(json_extract(employee.address, "$.city") as char) = "Delhi";总是返回 0 行
employee.address, "$.car")", VARCHAR) 的情况下使用。 eq("孟买")) .fetch();