[JAVA] Recherche de valeur de type JSON MySQL avec SpringBoot + Spring JPA

Aperçu

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.

Conclusion

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 + "%");
	};
}

référence

Custom expression in JPA CriteriaBuilder

Recommended Posts

Recherche de valeur de type JSON MySQL avec SpringBoot + Spring JPA
OU rechercher avec la spécification Spring Data Jpa
Rechercher dans JPQL des tables avec des colonnes de type JSON
Implémenter CRUD avec Spring Boot + Thymeleaf + MySQL
Jackson ne peut pas sérialiser JSON hibernateLazyInitializer dans Spring Data JPA entraîne une erreur
Enregistrer la conversion de type de paramètre de demande avec SpringBoot + MVC
Créez une application de recherche simple avec Spring Boot
[spring-boot] Complétez application.yml avec le plugin Spring Assistant d'IntelliJ
Trier par Spring Data JPA (avec tri par clé composée)
Création d'un référentiel commun avec Spring Data JPA