gpt4 book ai didi

jpa - JPA CriteriaBuilder 中的自定义表达式

转载 作者:行者123 更新时间:2023-12-01 13:42:34 27 4
gpt4 key购买 nike

我有一个带有字符串字段(存储 JSON)的实体,需要将其数据库列中的值与另一个值进行比较。问题是这个数据库列的类型是TEXT,但实际上它包含JSON。那么,有没有办法写出这样的东西? IE。我需要将我的值与 TEXT 列中的某些 JSON 字段进行比较。

criteriaBuilder.equal(root.get("json_column").customExpressionn(new Expression{
Object handle(Object data){
return ((Object)data).get("json_field")
}
}), value)

最佳答案

假设您有一个版本 > 5.7.x 的 MySQL 服务器

我只是有同样的问题。我想找到在 JSON 对象列中具有 JSON 字段值的类的所有实体。

对我有用的解决方案是类似的东西(对不起,用手机打字)

(root, query, builder)->{
return builder.equal(
builder.function("JSON_EXTRACT", String.class, root.get("myEntityJsonAttribute"), builder.literal("$.json.path.to.json.field")),
"searchedValueInJsonFieldOfJsonAttribute"
)
}

关于jpa - JPA CriteriaBuilder 中的自定义表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38743901/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com