[JAVA] MySQL JSON-Typ Wertesuche mit SpringBoot + Spring JPA

Überblick

Ich habe die Wertwertsuche der JSON-Typenspalte mit JPA als Freigabe untersucht. Ein Fall, der nach Spezifikation gesucht werden muss.

Fazit

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

Referenz

Custom expression in JPA CriteriaBuilder

Recommended Posts

MySQL JSON-Typ Wertesuche mit SpringBoot + Spring JPA
ODER suchen Sie mit der Spring Data Jpa-Spezifikation
Durchsuchen Sie JPQL nach Tabellen mit Spalten vom Typ JSON
Implementieren Sie CRUD mit Spring Boot + Thymeleaf + MySQL
Jackson kann hibernateLazyInitializer in Spring Data nicht JSON serialisieren JPA führt zu einem Fehler
Registrieren Sie die Konvertierung des Anforderungsparametertyps mit SpringBoot + MVC
Erstellen Sie mit Spring Boot eine einfache Such-App
[spring-boot] Ergänzen Sie application.yml mit dem Spring Assistant-Plugin von IntelliJ
Sortieren nach Spring Data JPA (mit zusammengesetzter Schlüsselsortierung)
Erstellen eines gemeinsamen Repositorys mit Spring Data JPA