jsonb字段的JPA规范

时间:2020-10-09 13:51:46

标签: java hibernate jpa

我的表(postgres DB)中有一个jsonb列extraInfo,说:

{"token": "11235813"}

我想创建一个JPA规范,该规范返回所有行,以使此列中的token字段大于某个特定的long值。我尝试了以下无效的方法。

public static Specification<Blah> tokenIsBiggerThan(long token) {
        return (root, query, cb) -> cb.greaterThan(cb.function("jsonb_extract_path_text", Long.class, root.get("extraInfo"), cb.literal("token")), cb.literal(token));
}

只是想找到正确的咒语,有什么主意吗?

编辑:事实证明我可以进行字符串比较:

public static Specification<Blah> tokenIsBiggerThan(long token) {
        return (root, query, cb) -> cb.greaterThan(cb.function("jsonb_extract_path_text", String.class, root.get("extraInfo"), cb.literal("token")), cb.literal(String.valueOf(token)));
}

我想这是可行的并且是'fine',但是宁愿将token转换为long并进行数字比较。

0 个答案:

没有答案