sql >> Database teknologi >  >> RDS >> Mysql

Spring Data med Mysql JSON type

Ifølge Forårsdata Docs Appendiks D:Repository-forespørgselsreturtyper , de eneste understøttede typer er:void, primitiver, Wrapper-typer, T, Iterator, Collection, List, Optional, Stream, Future, CompletableFuture, ListenableFuture, Slice, Page, GeoResult, GeoResults, GeoPage.

Som du kan se, er det ikke understøttet i øjeblikket. En af ideerne bag det, jeg tror, ​​at det ikke er en almindelig fornuft i alle databaser endnu.

Selvfølgelig kan du bruge denne lagring som Json og oprette en konverter til den:

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

og:

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);
  }
}

Det er klart, at uden den tilgang, vil du ikke gøre brug af Json på en pæn måde, som MySQL er i stand til. Men jeg tror, ​​at der ikke er noget problem, hvis du opretter MySQL specialiserede forespørgsler for at gøre brug af det.




  1. Hvordan beregner man diskpladsen brugt af MySQL-tabellen ud fra kolonnedatatyper og antal rækker?

  2. Hvad er den bedste måde at slette gamle rækker fra MySQL på en rullende basis?

  3. MySql - bestil efter månedsnavn

  4. SQL:hvordan bestiller jeg efter et felt, hvis det ikke er null, ellers brug et andet felt