J'ai étudié la recherche de valeur de valeur de la colonne de type JSON à l'aide de JPA, donc en tant que partage. Un cas à rechercher par spécification.
Utilisez les fonctions MySQL.
JSON_EXTRACT
SELECT * FROM ATABLE WHERE JSON_EXTRACT("column_name", "$.key") = value;
Ainsi, lors de l'utilisation de la spécification Spring JPA,
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