sql >> Database >  >> RDS >> Mysql

Spring Data met Mysql JSON-type

Volgens Spring Data Documenten Bijlage D:Repository queryretourtypes , de enige ondersteunde typen zijn:void, primitives, Wrapper-typen, T, Iterator, Collection, List, Optioneel, Stream, Future, CompletableFuture, ListenableFuture, Slice, Page, GeoResult, GeoResults, GeoPage.

Zoals je kunt zien, wordt het voorlopig niet ondersteund. Een van de ideeën erachter Ik denk dat het nog niet alle databases gemeen hebben.

Uiteraard kun je deze opslag gebruiken als Json en er een converter voor maken:

  @Column(name = "configuration", nullable = false)
  @Convert(converter = PluginAnalyzerConfigConverter.class)
  private PluginAnalyzerConfig configuration;

en:

public class PluginAnalyzerConfigConverter implements
    AttributeConverter<PluginAnalyzerConfig, String> {

  @Override public String convertToDatabaseColumn(PluginAnalyzerConfig config) {
    Gson parser = new Gson();
    return parser.toJson(config, PluginAnalyzerConfig.class);
  }

  @Override public PluginAnalyzerConfig convertToEntityAttribute(String source) {
    Gson parser = new Gson();
    return parser.fromJson(source, PluginAnalyzerConfig.class);
  }
}

Het is duidelijk dat je zonder die aanpak Json niet zult gebruiken op een leuke manier zoals MySQL dat kan. Maar ik denk dat er geen probleem is als je gespecialiseerde MySQL-query's maakt om er gebruik van te maken.




  1. Een SQL-query schrijven met dynamische LIMIT

  2. MariaDB BEHALVE Operator uitgelegd

  3. Oracle Apex 5.0 - Statische afbeelding weergeven

  4. MySQL-groepsresultaten per dag met tijdstempel