sql >> Databasteknik >  >> RDS >> Mysql

Spring Data med Mysql JSON-typ

Enligt Spring Data Dokument Bilaga D:Returtyper för arkivfrågor , de enda typerna som stöds är:void, primitiver, Wrapper-typer, T, Iterator, Collection, List, Optional, Stream, Future, CompletableFuture, ListenableFuture, Slice, Page, GeoResult, GeoResults, GeoPage.

Som du kan se stöds det inte för närvarande. En av idéerna bakom det, jag tror att det inte är ett sunt förnuft för alla databaser än.

Självklart kan du använda denna lagring som Json och skapa en omvandlare för den:

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

och:

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

Uppenbarligen att utan det tillvägagångssättet kommer du inte att använda Json på ett bra sätt som MySQL kan. Men jag tror att det inte är några problem om du skapar MySQL-specialiserade frågor för att använda det.




  1. Hur REGEXP_SUBSTR() fungerar i MariaDB

  2. Laravel 5.1 - Kontrollera en databasanslutning

  3. Ändra namn på Laravels create_at och updated_at

  4. COS() Funktion i Oracle