Ich habe die Wertwertsuche der JSON-Typenspalte mit JPA als Freigabe untersucht. Ein Fall, der nach Spezifikation gesucht werden muss.
Verwenden Sie MySQL-Funktionen.
JSON_EXTRACT
SELECT * FROM ATABLE WHERE JSON_EXTRACT("column_name", "$.key") = value;
Wenn Sie also die Spring JPA-Spezifikation verwenden,
public Specification<T> jsonSearch(String key, String val) {
return (root, query, cb) -> {
return cb.like(cb.function("JSON_EXTRACT", String.class, root.get("names"), cb.literal("$." + key)),
"%" + val + "%");
};
}
Custom expression in JPA CriteriaBuilder
Recommended Posts